Skip to content

Developers · Users and Permissions

Sharing Attributes Across Multiple Profiles

Last updated 2 November 2026

This guide shows you how to share attributes across multiple user profiles. If your profiles have the same Properties, you can extract them to a container profile. This action groups them and enables you to use them in different profiles.

Prerequisites

This guide builds on previous tutorials in the Users section:
Users

Steps

Sharing attributes across multiple user profiles is a three-step process:

  • Step 1: Create a profile template
  • Step 2: Create profiles
  • Step 3: Use profiles

Step 1: Create a profile template

Create a general employee template. You can define other profiles with fields from the profile and some more.

app/user_profile_types/employee.yml

name: employee
properties:
  - name: name
    type: string
  - name: email
    type: string
  - name: emergency_contact
    type: string

Step 2: Create profiles

app/user_profile_types/software_developer.yml

name: software_developer
properties:
  - name: programming_languages
    type: array

app/user_profile_types/project_manager.yml

name: project_manager
properties:
  - name: projects_managed
    type: array

Step 3: Use profiles

Here's an an example of using the software developer profile on a sign-up form:

app/forms/software_developer_signup.liquid

---
name: software_developer_signup
redirect_to: /software-developer/sign-in
resource: User
fields:
  profiles:
    validation: { presence: true }
    employee:
      validation: { presence: true }
      properties:
        validation: { presence: true }
        name: { validation: { presence: true } }
        email: { validation: { presence: true } }
        emergency_contact: { validation: { presence: true } }
    software_developer:
      validation: { presence: true }
      properties:
        validation: { presence: true }
        programming_languages:  { validation: { presence: true } }
---
[...]

Here's an example of using the project manager profile on a sign-up form:

app/forms/project_manager_signup.liquid

---
name: project_manager_signup
redirect_to: /project-manager/sign-in
resource: User
fields:
  profiles:
    validation: { presence: true }
    employee:
      validation: { presence: true }
      properties:
        validation: { presence: true }
        name: { validation: { presence: true } }
        email: { validation: { presence: true } }
        emergency_contact: { validation: { presence: true } }
    project_manager:
      validation: { presence: true }
      properties:
        validation: { presence: true }
        projects_managed:  { validation: { presence: true } }
---
[...]

Note

If you would like to create a profile on sign-up without assigning any property, please make sure that the parameters would include at minimum . You can achieve it with hidden input and or via JSON.

Note

To discover names that fields should have, explore the variable by printing it on your page.

Next steps

Congratulations! You know how to share attributes across user profiles. You can learn more about Forms here: Reference: Forms