LogoLogo
Back to studio
  • 🧠Core Concepts
    • Introduction to Formsort
    • Formsort quickstart guides
      • Add content and collect answers
      • Capture demographic data
      • Add informational content
      • Template your variables
      • Add conditional logic
      • Using conditional logic with Calculated and API variables
      • Add a scheduling option
      • End the flow
      • Review your variable schema
      • Set up integrations
    • How data works in Formsort
      • Responder UUIDs
    • Understanding flows
    • Versioning in Formsort (Deploying)
      • Variant revisions
      • Managing revisions
  • ✨Creating Flows
    • Building a new flow
      • Groups
      • Steps
      • Copy-pasting form content
  • Adding questions and content
    • Questions
      • Select
      • Text
      • Address
      • Comparison
      • Confirmation
      • Date
      • Date & time
      • Email address
      • File upload
      • Grid choice
      • Iframe
      • Image upload
      • Number
      • Payment
      • Phone number
      • Postal code
      • Question group
      • Region
      • Signature
      • SSN
      • Yes/No
    • Content
      • Statement
      • Image
      • Next button
      • Video
      • Divider
      • Map
  • Controlling the flow with conditions and logic
    • Advanced logic
  • Variable templating
  • Redirects and endings
  • Field validation
  • Flow and variant management
  • Content library
  • 🧬JSON Form Definition
  • JSON schemas
  • Validating flow schemas
  • Events subscriptions
  • Flow content data format
  • 🎨Styling
    • Customizing appearance
      • Content area & form layout
      • Buttons
      • Typography
      • UI states
      • Color and dimension variables
      • Question containers
      • Inputs and dropdowns
      • Checkmarks
      • Tables
      • Sliders
      • Divider lines
      • Progress bar
      • Comparison cards
      • Animations and transitions
  • CSS & Advanced Styling
    • Custom CSS overrides
    • Step styling
    • CSS reference
  • 🔁Form Behavior Settings
    • Variant settings
      • Form behavior for returning users
      • Group ranking API
    • Navigation sidebar
  • ⚙️Response Data Collection & Management
    • Schema (variables)
      • Variables from questions
      • Externally provided variables
      • Calculated variables
      • API lookups
      • System Library variables
      • Orphaned variables
  • Saving & retrieving responses
  • Importing Data
    • URL parameters
    • POST body
    • Embed query parameters
  • 📊Analytics and Attribution
    • Built-in analytics
    • Split testing
  • 🚀Publishing and Deployment
    • Live preview overview
    • Environments
      • Loading different environments
    • Embedding
      • Web-embed API
        • React-embed
      • Adding authentication
      • Embedding forms in iOS and Android
      • Setting up a dev environment
    • Pre-deployment checklist
  • 📁Workspace Management
    • Accounts
      • Roles and permissions
    • Custom domains
    • Workspace domain detection
  • 🛠️Formsort Admin API
    • Admin API
  • 🔌Integrations
    • Form answers and events
      • Analytics events
      • Signed requests
      • Event payload shape
      • Submission frequencies
      • Runtime error reporting
    • Integration reference
      • Amplitude
        • Amplitude cross domain tracking
      • BigQuery
      • FullStory
      • Google Analytics
        • Updating from Universal Analytics to GA4
      • Google Cloud Storage
      • Google Sheets
      • Google Tag Manager (GTM)
        • JavaScript triggered by flow events
      • Hubspot
      • Jornaya
      • Optimizely
      • PostgreSQL
      • Redshift
      • Rudderstack
      • S3
      • Salesforce
      • Segment
        • Segment Setup
        • Segment cross domain tracking
      • Stripe
      • TrustedForm
      • Webhooks
        • Zapier
Powered by GitBook
On this page
  • Setting up an external bucket
  • Creating a filename pattern
  • Specifying file types allowed
  • Allowing multiple answers

Was this helpful?

  1. Adding questions and content
  2. Questions

File upload

Collects various files from the responder.

PreviousEmail addressNextGrid choice

Last updated 1 day ago

Was this helpful?

This question type is used in cases where the responder needs to upload documents, such as a pdfs of contracts, certificates, prescriptions, etc.

If you would like to ask the responder take a picture of an ID card or themselves, you can use the content type. If you would like the responder to sign a document, you can use the content type.

If you don't want the responder to be held up by a file upload question, make sure to mark the question as .

Setting up an external bucket

In order to have the responder upload a file, you need to set up a or to specify where the file will be stored. For detailed instructions on setting up a file integration in Formsort, you can go to thisand this page for

Creating a filename pattern

You can opt to define a naming pattern for the files that your responders upload by enabling Filename pattern in the question settings.

Here, you can any relevant variable you would like to be included in the name of the file into the field. For example, if you type {{first_name}} into the field, the value of the first_name variable will be used as the filename at upload.

Formsort also offers three custom variables for these types of file upload components, built right into the settings of the component itself: sessionUuid, randomUuid, and currentTimeUTC. These variables are also able be templated into the Filename pattern field to create dynamic filenames.

  • sessionUuid: a uuid that is created once, when the form is loaded.

  • randomUuid: a uuid that is created at and re-run at each upload instance.

  • currentTimeUTC: a timestamp that is created at and re-run at each upload instance.

You can use several of these variables at once, if required, and one pattern we suggest is {{currentTimeUTC}}_{{responder_uuid}}. This ensures uniqueness via the timestamp, while still tying the file to a particular user via the responder_uuid System Library variable.

Note that these extensions will be added automatically. You should also set a fallback naming convention in case the variable is not defined by typing it into the Filename pattern fallback field. Values here cannot use templated variables.

Specifying file types allowed

The below is a list MIME types currently supported by the file upload component:

Category

MIME types

Images

image/gif

image/vnd.microsoft.icon

image/png

image/jpeg

image/svg+xml

Video

image/mp4

Document

application/pdf

You should whitelist MIME types, otherwise you may receive uploads of formats that you cannot process; i.e. if you want to allow only document uploads, whitelist the application/pdf MIME type.

Allowing multiple answers

Enabling allow multiple uploads lets the respondent upload more than one file as an answer to a question.

Visit the section for details on built-in variables that provide information about the responder's environment and context.

You can whitelist by adding them to the Allowed MIME types field. Once a MIME type is whitelisted, the file upload will only accept that specific file type (as well as any other file type whitelisted).

System Library variables
MIME (Multipurpose Internet Mail Extension) types
image upload
signature
S3 bucket
GCS bucket
page for s3
GCS.
template
optional