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
  • When should content library be used?
  • Adding item prototypes to the content library
  • Using content library items in flows
  • Updating content library item prototypes
  • FAQs

Was this helpful?

Content library

Reuse content blocks across multiple flows.

PreviousFlow and variant managementNextJSON schemas

Last updated 9 months ago

Was this helpful?

The content library only available in the Enterprise tier

The content library allows for adding groups, steps, or questions to a central content library as prototypes. Instances of those prototypes can then be inserted into other flows. Changes to the prototype will be automatically reflected in the instances once they are re-deployed.

When should content library be used?

Oftentimes, an organization's form flows will have many variations that share much of their content.

As an example, a hypothetical veterinary practice might have multiple form flows for new patients depending on the pet's species -- asking, for example, questions about fish tanks if the patient is a fish, but questions about litter boxes for cats -- but those flows might share much of their structure, such as basic information, insurance, mailing address.

This approach becomes hard to scale once the number of permutations grows large, or the differences between flows start becoming larger and larger. Using conditions to choose between two paths is straightforward, but can be much easier to manager content using multiple flows if you have a dozen different branches.

Adding item prototypes to the content library

To add a group, step, or question to the content library, right click it, and choose Add to library...

You will be asked to provide some metadata, to make it easier to find the content later.

At this point, the item will be in the library, and you will see that the source step (the prototype) will have a small In library badge on it. It's possible to update the metadata in the settings sidebar, as well as to view the instances of this library item in other flows. Since we just added this item to the library, there are no instances of it in use yet.

What is included in content library item instances? Content library instances will contain everything that is in the original item, including the text, logic, and all settings associated with the group, step, or question. It is not currently possible to override any settings inside of the item on an instance basis.

Using content library items in flows

Once there is content in the content library, it can be used in other flows.

You will see that the Add button corresponding to the content type will now be a dropdown, and provide a From library... action.

From here, you can search for the content library item you'd like to add:

Once added, the content library item will be shown with a From library badge. It is no longer editable, as its content is defined in the prototype that is referenced in the content library.

Detach can be used to remove the association between this instance and the prototype. After being detached, the content (and any child content, like steps or questions within) will behave exactly like normally-created content will, and will no longer receive updates from the prototype.

To change the mapping of input and output variables, you can press Edit.

Updating content library item prototypes

The power of the content library comes from the ability to not just share content, but to update it from a single place across many flows.

To update a content library item, first we must go to its prototype.

You can find a prototype for any content library item by:

  1. Accessing the Content library section from the main page and finding the item in question.

  2. Clicking View prototype from any content library instance.

Content library items are not immediately updated when the prototype is updated.

To update the instances,

  1. Once you are complete making changes, you must deploy the flow containing the prototype to production.

  2. At this point, the instances will indicate which flows have not been redeployed since the prototype was updated.

  3. You can click through to each of the flows and re-deploy them so that they pick up the latest changes.

FAQs

  • Where should I keep my prototype items?

    • We recommend creating a "Shared content" or "Item library" flow that contains your most frequently used items.

  • Can I have variants of content library items, or define "settings" for content library items?

    • Not directly, but you can take advantage of conditional logic within the content library item to create a "settings"-like behavior.

    • When you insert a content library item, they will have to map the input variables -- which can be set as constants.

  • Can I nest library items inside of one another?

    • We do not support nesting of library items because versioning becomes quite difficult to understand, both from a technical and user perspective.

  • Can I bulk re-publish flows using content library items?

    • It is not currently possible to bulk re-publish flows, primarily because there may also be other pending changes within those flows unrelated to the updated content library item.

A simple way to achieve this kind of logic would be to express it within a single flow, using .

Most content items will either depend on variables, or set answer variables. When inserting a content library item you will need to decide how to map those inputs and outputs to the rest of the flow, similarly to the mapping that happens in .

conditional logic
copy and paste
Adding a step to the content library