Customer Fields
Next up { nextPost.title }

How to get Customer Fields data into MailChimp

Looking to send a targeted set of emails using MailChimp and the data you’ve collected through Customer Fields? We’ve got you covered—in two simple steps:

1) Export data from Customer Fields using this guide we created for getting customer data.

  • This data exported will be a CSV file including all the customer information.
  • You may want to clean up this file to suit your preferences. For example, if you are only interested in specific fields, we suggest creating a new CSV file with these fields only.

2) Import data into MailChimp using MailChimp’s article on importing data.

And lastly, don’t hesitate to reach out to us at if you have questions or concerns. We’d love to help! 👍

How to organize customer data within Shopify

Already have a database of customers outside of Customer Fields? Not a problem. This guide explores how to combine all your customer data into the Customer Fields app to improve organization. We’ve designed a simple, efficient way to import customers from a separate CSV file to make your life easier. Here’s how:

1. First & foremost, be sure to have all fields completed in the Fields tab in the Customer Fields app. Include all fields you will be importing as well as new information you’re hoping to gather from future customers. It’s important that you’ve successfully set up all your fields before importing.

2. Examine the CSV file you will be importing and remove any anomalies or mistakes. Make sure the first row of each column represents a field title (e.g. First Name, Last Name, e-mail, ect.). These field titles should match the fields you’ve created in Customer Fields. If the fields in the CSV file do not have a corresponding field in Customer Fields, that portion of the data will not successfully import. So triple-check to make sure you’ve created the fields you need.

3. Sweet, the CSV file is now ready for import. In the Customer Fields app, navigate to the Customers tab. Here you will see a grid of all your customer data. Select IMPORT, choose the desired CSV file, click UPLOAD.

4. Once you upload the file, you will match each field with the CSV column from your uploaded file. Skip those fields you’d like to ignore, and make sure every desired field is matched.

5. Select IMPORT CUSTOMERS and the importing process will begin.

*Customers that already exist in Customer Fields will be recognized and not imported. This way you do not end up with duplicates.

Superb job! 👏 You’ve successfully imported your customers. If you need assitance, feel free to drop us an email anytime at and we’ll be happy to help.

How to export your customer data from the Customer Fields app

Now that you’ve successfully set up fields, your customers can input their information for you to use. The next step is getting that data and doing something with it. No problem—we’ve designed a simple way to do just that.

To get customer data:

  1. Within the Customer Fields app, click on the Customers tab. This page is where you’ll find a list of all your customers; including their email, location, order information and total amount spent.

  2. Now that you’re in the Customers page, click EXPORT on the lower right-hand side.

The file exported will be a CSV file (comma separated values file) including all the information your customers have submitted.

And you’re done! 🎉

How to apply automatic tags to customers in Shopify

Once you have your necessary customer information, you might want this info to appear as tags in your Shopify admin. With Customer Fields, this task is made easy & simple.

There are two ways to automatically tag customers using Customer fields:

  • You can tag customers with the value they select from any dropdown, checkbox or radio field
  • You can tag customers with a hidden value that you define from the app admin

↓ Follow the steps below to enable auto tagging for Customer Fields! ↓

Automatically tag customers with the value they select from a dropdown, checkbox or radio field:

  • In the app admin, go to the Fields page
  • Click the desired field that you would like to auto tag. Field options will then appear for the field you selected.
  • In the field options, scroll down to ‘Auto Tag’ and select the checkbox for ‘Yes’.
  • Click the ‘SAVE FIELDS’ button.
  • Repeat these steps for another field if desired.
  • Once done, your customers will be automatically tagged with the value they choose for the field(s) that have the ‘Auto Tag’ setting enabled 🙌

Automatically tag customers with a specific value:

  • In the app admin, go to the Fields page
  • Click the ‘NEW FIELD’ button to create a new field
  • In the popup that appears, click the ‘Tag’ field type
  • Type in a key for the new field and click the ‘Save’ button
  • In the field options, type in the value you want to use for the customer tag
  • Click the ‘SAVE FIELDS’ button.
  • Once done, your customers will be automatically tagged with the value you’ve defined. This particular field type is hidden from customers, so they will not be aware of the tag(s) used 👍

How to create a separate registration form

If you wish to use Customer Fields to collect additional information from certain customer types during registration (special users, members or wholesalers, etc) - while allowing regular customers to create an account using Shopify’s standard registration form, then this guide is for you!

Note: This guide is meant for those who are comfortable using Shopify’s code editor. If you are not comfortable making these changes or if you need any assistance, please contact our support team via chat or email. We are happy to setup a separate form on your behalf for no cost 😎

Here’s a couple things to keep in mind before we begin:

  • Currently, the Customer Fields app is meant to be used to create a single registration form. By following the steps in this guide you will be able to create a separate registration form, keeping the standard registration form provided by Shopify as-is.
  • If you have already used the app’s ‘quick install’ tool, then you will want to use the uninstall instructions and perform every step except Step 1 before continuing.

Ready to get started? Please follow the steps below:

Step 1 - Login to the admin area of Shopify and go to Online Store > Themes. Click ‘Actions’ and select ‘Edit code’

Step 2 - Once in the code editor, scroll down to the Snippets section click the folder to expand it. Then click the link for ‘Add a new snippet’:

Step 3 - Create a new snippet named customer-fields and add the following code:

<div id="customer-fields" {% unless customer %}data-registration="true"{% endunless %}>
  {% form 'create_customer' %}
    <input type="hidden" name="shop" value="{{ shop.permanent_domain }}">
    <div class="fields"><!-- Fields loaded from server --></div>
    <div class="form-footer"></div>
      var Customr = {
        baseUrl: "",
        {% if customer %}
          shopifyCustomer: {
            id: {{ }},
            token: {{ customer.metafields.customr_auth.token | json }}
        {% endif %}
    <script src=""></script>
  {% endform %}

Step 4 - After adding saving the new file for the app snippet, click the link for ‘Add a new template’ in the Templates section:

Step 5 - In the popup, select ‘page’ from the first drop-down and then type in an appropriate name for the page before clicking the ‘Create template button’. In this example we’re going to use ‘wholesale-form’ for the template name:

Step 6 - Shopify will automatically add the default code for the page template that’s being used by the store’s theme. Some themes will have different code for the page template so the process will vary slightly, but the concept is the same. You’ll want to use liquid to include the app snippet in the new template file, like so:

{% include 'customer-fields' %}

Step 7 - After saving the new template file, exit the code editor and go to Online Store > Pages

Step 8 - If you already have a page created for use with the separate form, then click the title of the existing page to edit it. Otherwise, you will want to create a new page.

Step 9 - When editing the existing page or creating a new page, you will want to use the template setting that shows on the right-hand side of your screen. Use the drop down to select the new page template you just created:

Step 10 - After saving the changes to the page in the Shopify, go ahead and view the page on the storefront to confirm if the app’s form is showing. If the registration form is showing then you’ve done things correctly! Feel free to test the form by creating an account to ensure things are working as expected 👍

If you get stuck or if you need any help, please don’t hesitate to contact our support team via chat or email!

The key elements to effective customer profiling

Gathering customer information for your e-commerce store is important, so why not make it top-notch? This article explores the criteria involved in making a great customer profile. By discovering the best way to engage with your customers, you can add value to your store’s customer interaction and demographics. Consider building an ideal profile for your targeted customers—primarily those who will benefit your company. Refining these marketing strategies are key to understanding your customers and helping your business thrive through Shopify.

Here’s four ways to create a great customer profile:

1. Identify the primary needs of your customers, how they found out about you, and what you can offer them.

By evaluating your current customer information, you can more efficiently forecast and target future customers. Find out what makes your products unique to your customers and how you can adjust to what they’re looking for. One of the essential ways to innovate your Shopify store is by evaluating how you can improve & apply your consumer knowledge.

2. Demographic factors are fundamental to gathering statistical information about your customers.

We recommend creating some generic fields in order to fully understand what kind of crowd your company is attracting. Consider learning characteristics such as age, gender, location or occupation. Basic fields such as these are profoundly insightful when looking at the consumer population as a whole. If you’re into statistics, this will also give you a chance to work those numbers.

3. Personalize to your preferences and specialties.

Every e-commerce store is unique and requires its own set of customer information. This is where thinking outside the box comes into play; evaluate what information your company finds value in. Whether it’s dress size or kitchenware preference, customize and prioritize to what you consider beneficial to your Shopify store.

4. Last of all: don’t over-do it.

This is likely the most significant piece of advice. Keeping your fields simple is key to a beautiful & effective customer profile. Although the amount of fields you can create is essentially unlimited, we recommend no more than 20. When you have too many fields, it can: 1) overwhelm your customers 2) clutter up the webpage 3) add more data to process & filter through. Don’t collect any information that isn’t vitally important.

How to add a birthday field for customers in Shopify

It may be easier than you think to collect and use customer birthday information from Shopify. Our app allows you to customize a variety of birthday options, whether you want full birthdate (day, month, year) or just birthday year.

To create a birthday field:

1) Login to the Customer Fields app, and click the Fields Tab. This page allows you to edit your field options and add new fields.

2) Click the “+NEW FIELD” button to create a new field and select the date tab.

3) In the date options, you can choose from the following:

  • BIRTHDAY: creates three separate fields — day, month, and year (full birthdate)
  • DAY: creates day field only
  • MONTH: creates month field only
  • YEAR: creates year field only

When choosing the BIRTHDAY option, the keys are automatically set to birthday_day, birthday_month, and birthday_year (although you can change them if desired). You will have to create your own keys for the remaining options (DAY, MONTH, and YEAR).

4) Be sure to click SAVE once you’ve selected one of the date options.

Now that you’ve created your birthday fields, you can edit them to your preference.

To edit a field, simply click on the desired field and the field options will appear. From the field options, you can customize a variety of things; label, placeholder text, amount of days/months/years to choose from, and much more.

Here are some helpful hints for using field options:

  • The right-hand column of numbers represents what will be displayed.
  • To display a specific range of years, select the birthday year field and go to field options. In the “Years Back” and “Years Forward” sections, input numbers based on your desired range of years. The “Year Order” has two options: descending or ascending. Descending—most recent years at the top of the drop-down menu, ascending—most recent years at the bottom of the drop-down menu.
  • To add or delete days to choose from, select the birthday day field and notice the Choices section under field options. Here, the default amount of days is 31, but you can change this by scrolling to the end of the Choices section and adding or deleting days.

Sweet, your birthday fields are successfully set up! 👍 Your next step might be getting that customer data. Not a problem; just be sure to check out getting customer data.

This is a list of theme issues that we’re aware of. If you have one of these themes, you’ll need update certain files in the Edit HTML/CSS of your theme. Note that filenames and line numbers can change if you’ve changed your theme. Feel free to reach out to our support team if you have any issues adding these fixes.

Focal Theme

File: assets/theme.scss.liquid line 1635


  input[type="radio"] {
    width: 1em;
    height: 1em;
    margin-right: 15px;
    margin-right: 0.9375rem;
    -webkit-appearance: radio;

    & + .form__label {
      display: inline-block;
      vertical-align: 1px;

Liquid Installation

Let’s get Customer Fields installed on your theme.

Quick Install Have us do it for you (for free!) Do it yourself</div>


Our app compiles all your customer data here. Whether it’s a new customer or one that has been with you from the very beginning, you will see them here; along with whatever preferences you have created for them.


In the fields section you can create numerous different kinds of fields to collect your customers’ important and useful data. Whether you want them to input what city they are from, zip code, favorite color, favorite food, shirt size, etc. (the possibilities are endless!) you can create a field for that here.

To create a new field, click on the grey + button below the default fields.

Here you can select from the following: single line text, dropdown, radio, checkbox, phone number, and textarea. After you name the field, you can add it to your fields section. Once you have added it to your fields, you will want to set the field options. You can set the field options to be required, default or input placeholder text. Don’t forget: you can click and drag the fields for how you want them to display on your shop.

Getting Started

What is Customer Fields?

Customer Fields is a Shopify app that allows merchants (that’s you) to collect unique customer information. With the app, you can create custom fields, build a custom registration and let your customers edit their own accounts. You can filter, export & import customer data to help you more efficiently organize your customers.

How will Customer Fields help me?

Customer Fields is there to help you build a valuable customer database. This database can help you really get to know your customers. Go beyond just name and email and find out details that matter to you. With Customer Fields, you can create unique custom fields such as birthday, phone number or even shoe size. Once you’ve collected the data you need, you can use it for effective marketing, customer profiling, email campaigns and much more.

How do I install Customer Fields?

You can install the app by heading to our installation page. The quick install will automatically add the form code to your theme: all you have to do is choose your theme (no manual work required). If you’d like to edit your theme’s code manually, you can follow these manual installation steps. If you’d like us to install the app code for you, reach out to us via chat or email. We’d be happy to make sure the installation is successful.

I can’t see the registration form on my shop. Where is it?

If you installed with our quick install, the form will automatically install on your registration page (/account/register). You can find the registration template in your theme’s code > templates > file: customers/register.liquid.

If you’re not able to view your theme’s login, registration or account pages, your accounts may be set to disabled. To enable accounts, follow these few steps:

  • In your Shopify admin, go to Settings > Checkout

  • Scroll down to Customer Accounts > make them either optional or required (your choice!)

Creating Fields

How do I create custom fields?

Follow these simple steps:

  • In the Customer Fields app, go to the Fields page.
  • Select “NEW FIELD”
  • A window will open showing various field types. Select the one you’re looking for, give the field a key and click “SAVE”

I’ve created a custom field. What should I name the key?

You can name the key anything, but it should reflect your field label. See the following requirements:

  • Must be a minimum of 3 characters
  • Must only include numbers, letters & underscores

We recommend using no spaces in the key. This isn’t required but it can cause various issues, such as if you plan to use metafields to display the fields elsewhere.

How do I create a file upload field?

  • In the Customer Fields app, go to the Fields page.
  • Select “NEW FIELD”
  • A window will open showing various field types. Under Form Elements, select “UPLOAD”
  • Give the field a key and click “SAVE”
  • And you’re done!

How do I create a hidden field only accessible to me (the merchant)?

  • In the Customer Fields app, go to the Fields page.
  • Select “NEW FIELD”
  • A window will open showing various field types. Under Form Elements, select “HIDDEN”
  • Make sure to give the field a key and click “SAVE”
  • Note: all hidden fields will be in the form of text fields. These are useful if you’re interested in creating internal notes about a customer only accessible to you (the merchant).

How do I create a read-only text field?

We call these heading fields. Heading fields are useful for providing your customers with important information, such as form instructions or blocks of text customers can’t edit. You can also use heading fields to separate sections of your form.

Here’s how to create a heading field:

  • In the Customer Fields app, head to Fields.
  • Select “NEW FIELD”
  • Under Form Elements, select “HEADING.” Give the field a key and click “SAVE.”

I’ve created a heading field. How do I change the font?

Since headings are often useful for separating sections of your form, you might want to increase the font-size or make the text bold. With CSS, you can add a class to your heading field in the app > Fields > select the field > Field Options > Advanced > Field Class. Then, you’ll want to add this new class to your theme’s code. If you don’t feel comfortable with CSS, fear not. Reach out to us via chat or email and we’d be happy to make those changes for you.

Auto Tags

How do auto tags work?

You can use auto tags to tag customers with unique values. These tags will automatically appear in Shopify once the form is submitted. There are two ways to use auto tags:

  • Apply a hidden tag to every customer who registers.
  • Tag customers with the value of an option they choose. Auto tag options can be added to checkbox, select and radio button fields.

How can I apply a tag to every customer who registers?

  • In the Customer Fields app > Fields > select “NEW FIELD”
  • Under Form Elements choose “TAG” > give the tag a key > select “SAVE”
  • Give the tag a value in Field Options. And you’re done!

Notifications & Options

I’m not receiving email notifications to my inbox. What might be wrong?

There are a few solutions to check:

  • Go to your Notifications page in the Customer Fields app. Make sure both toggles are turned on for receiving notifications. Be sure to click SAVE once you apply these changes.

  • If you already have notifications on, review the email address and make sure it is correct.

  • Check your junk mail for these emails. Certain email providers will reject the notification emails sent through us and place them in your junk mail.

  • Still having trouble? Drop us a chat or email.

Field Setup

Can I rearrange the fields after I’ve created them?

Definitely! In the app, head to Fields. You can rearrange all fields by dragging & dropping. This change is reflected on the form your customers see.

Note: this change is not effective on the Customers page in the backend. We anticipate adding this feature in the future.

My customers can’t edit their accounts. How do I enable this?

If you installed via our quick install, there should be an “Edit” link on your shop’s account page. By default, the link will be added directly by your Account Details header. You can verify this in your theme’s code > templates > open the file: customers/account.liquid > search for “edit.”

Still having trouble? Reach out to us via chat or email and we’d be happy to help.

How do I make the form field styles match the rest of my theme?

If you chose quick install, the form should automatically install on your registration page. The styles should get carried over from your theme’s form styles. If your registration form’s field styles look different from your other form fields (such as on your shop’s login page), those styles may have to be manually added. Don’t feel comfortable with CSS? Reach out to us via chat or email and we’d be happy to help make your form look awesome.

Can my form have multiple addresses?

Each address includes a total of 8 fields collectively (phone number, company, address line 1, address line 2, city, zip, state & country). Note that you can choose any combination of these address fields.

We don’t recommend creating multiple addresses in your Customer Fields form. This is because most Shopify themes already handle address management in the account profile. This feature already allows customers to add multiple addresses, as well as view & edit them.

Note that it is possible to create multiple address fields in Customer Fields; you will just have to manually create them if you’ve already used our default address fields for your first address. E.g. the key names must differ from the original address key names.

How do I hide fields on registration, but make them available after sign-in?

You might want to create a field that isn’t visible on the registration form, but is available for customers to edit after registration. This is a great way to make your form simple & customer-friendly. By hiding some fields on registration, this gives your customers the option to add additional information later (after they’ve signed in).

Here’s how to create a field that is hidden on registration: In the app, go to the Fields page. Select the desired field and this will open Field Options. Under Field Options, check “hide on registration.”


If I pause my Shopify store, does that also disable customer accounts to be created via Customer Fields?

If you pause your Shopify store, this does not affect customer accounts. Customers will still be permitted to create accounts. This applies to both cases of having Customer Fields installed on your store versus not.

Didn’t find your question?

We’d love to hear from you! Click on the chat bubble below or drop us an email. Our support team would love to help. 🤙


There may be cases where you want to update customer information within your own custom app. We have several API endpoints that allow you to manage unique customer data. Any information you save via the API will also be pushed directly via the Shopify API. We save custom fields in both our database and Shopify Metafields.

API Rate Limits

We limit requests similar to Shopify, which is 2 requests per second. We do not currently support Shopify’s similar “leaky bucket algorithm” with batch requests. If you exceed 2 requests per second at any time, you’ll receive a 429 “Too Many Requests” response.


You can create an API token in the account tab. Any token has full access to any API endpoint. To authenticate, include the Authorization header in your request with the API token attached. It’s important to keep these keys safe, as anyone with access to this token has full access to your customer’s information.

Header Value
Authorization Token token="xxx"

Example curl request with authorization:

curl --header "Authorization: Token token="xxx""


You may send data as either form data or JSON. Set the following header when posting data that is in JSON format:

Header Value
Content-Type application/json
Accept application/json


Create a new customer

POST /api/v1/customers


Any parameter accepted by Customer from Shopify's API and any custom fields setup the fields section. Custom fields are referenced by a field's key. Keys are case sensitive.


string (default: "true")

Turn off required field validations for custom fields.



{% highlight javascript %} { "customer": { "first_name": "Samwise", "last_name": "Gamgee", "email": "", "quote": "Don't you leave him Samwise Gamgee.", "birthday": "02/14/500", "addresses": [ { "address1": "4563 Grass Ln", "province": "The Shire", "zip": 852156, "country": "Middle Earth" } ] } } {% endhighlight %}
Response {% highlight javascript %} { "customer": { "id": 6725212430, "email": "", "accepts_marketing": false, "created_at": "2017-03-10T18:09:51-05:00", "updated_at": "2017-03-10T18:09:51-05:00", "first_name": "Samwise", "last_name": "Gamgee", "quote": "Don't you leave him Samwise Gamgee.", "birthday": "02/14/500", "orders_count": 0, "state": "disabled", "total_spent": 0, "last_order_id": null, "note": null, "verified_email": true, "multipass_identifier": null, "tax_exempt": false, "phone": null, "tags": "", "last_order_name": null, "domain": "", "addresses": [ { "address1": "4563 Grass Ln", "province": "The Shire", "zip": 852156, "country": "Middle Earth" } ] } } {% endhighlight %}

Get a single customer

GET /api/v1/customers/:id
Parameters None
Request GET
Response {% highlight javascript %} { "customer": { "id": 5725212430, "first_name": "Jane", "last_name": "Doe", "email": "", "custom_field_key": "Set this up in fields", "accepts_marketing": false, "created_at": "2017-03-10T18:09:51-05:00", "updated_at": "2017-03-10T18:09:51-05:00", "orders_count": 0, "state": "disabled", "total_spent": 0, "last_order_id": null, "note": null, "verified_email": true, "multipass_identifier": null, "tax_exempt": false, "phone": null, "tags": "", "last_order_name": null, "domain": "", "addresses": [ { "company": "Hoeger Inc", "address1": "Rylan Wells", "address2": "Apt. 436", "city": "Port Nick", "province": null, "country": "United States", "zip": "72736", "phone": "570-020-0869" } ] } } {% endhighlight %}

Update a single customer

PUT /api/v1/customers/:id


Any parameter accepted by Customer from Shopify's API and any custom fields setup the fields section. Custom fields are referenced by a field's key. Keys are case sensitive.


string (default: "true")

Turn off required field validations for custom fields.



{% highlight javascript %} { customer: { first_name: "Jim", last_name: "Smith", favorite_color: "Green" } } {% endhighlight %}
Response {% highlight javascript %} { "customer": { "id": 3818644165, "first_name": "Jim", "last_name": "Smith", "favorite_color": "Green", "email": "", "accepts_marketing": false, "created_at": "2017-03-10T18:09:51-05:00", "updated_at": "2017-03-10T18:09:51-05:00", "orders_count": 0, "state": "disabled", "total_spent": 0, "last_order_id": null, "note": null, "verified_email": true, "multipass_identifier": null, "tax_exempt": false, "phone": null, "tags": "", "last_order_name": null, "domain": "" } } {% endhighlight %}

Metafield Data

We store customer information in two places - our database and Shopify’s Metafields. When a customer record is saved, metafields will be stored with the customr namespace and a key that relates to the key set up in the fields section. Of course, this data is accessible to either the Shopify API, or in front-end liquid as such:

Display data from a single field

{% raw %}

<!-- templates/customers/account.liquid -->
Your Favorite Color: {{ customer.metafields.customr.favorite_color }}

<!-- Outputs:
Your Favorite Color: Red

{% endraw %}

Note: If your field key includes spaces then you will need to use brackets and quotes for the key. Example:

{% raw %}

{{ customer.metafields.customr['Resale License Number'] }}

{% endraw %}

Loop through each field

{% raw %}

<!-- templates/customers/account.liquid -->
{% for field in customer.metafields.customr %}
  {% assign key = field[0] | replace: "_", " " | capitalize %}
  {% assign value = field[1] %}
  <p>{{ key }}: <strong>{{ value }}</strong></p>
{% endfor %}

<!-- Outputs:
Birthday: 10/25/1987
Favorite Color: Red
Gender: Female

{% endraw %}

Custom Fields

Sweet. You’re a rockstar and want to develop out your own form submission UI. You could use our form builder, but really you’re cooler than that. Guess what? You don’t have to! All you must do is create hidden fields for the attributes you want to capture in fields and build your own markup with the associated names. You must namespace the form names as such:

{% raw %}

<div id="customer-fields">
  {% form 'create_customer' %}
    <input type="hidden" name="shop" value="{{ shop.permanent_domain }}">
    <!-- Custom field with a key called "unicorn" -->
    <input type="text" name="customer[unicorn]">
    <!-- Custom field with a key called "your-custom-key" -->
    <input type="text" name="customer[your-custom-key]">
    <div class="form-footer"></div>
      var Customr = {
        baseUrl: "",
        {% if customer %}
          shopifyCustomer: {
            id: {{ }},
            token: {{ customer.metafields.customr_auth.token | json }}
        {% endif %}
    <script src=""></script>
  {% endform %}

{% endraw %}

Now you can go nuts and build out that special UI you’re after.

Reset Password Field

Currently, Customer Fields will hide all password fields within the edit account form so that customers don’t inadvertently change their password. If you’d like an option for customers to reset their password we suggest looking at Shopify’s native method for doing so.

Shopify Fields

If you name a field with a key that relates to a Shopify customer attribute, we’ll assign the value of that field to the customer data field within Shopify. For example, if you name a key “tags” or “first_name”, a change within Customer Fields will be reflected in the actual Shopify customer in the admin.


Skip Validation

If you need to prevent field validations (required fields), you can add the skip_validation param to the form.

  <input type="hidden" name="skip_validation" value="true">


By default, Customer Fields will autofill any field with a value, even if it’s blank. If you don’t want this to happen, add the data-nofill="true" attribute to the input field and it will be ignored.

  <input type="hidden" name="customer[custom_field]" value="custom value" data-nofill="true">

Callback Hooks

If you want to do development work with Customer Fields, you’ll want to use event hooks that allow you to do JavaScript when you need. Within the customer-fields.liquid snippet, a global Customr object is defined. Within this object, you can use the following callback methods. Note that if a function returns false the current function will be returned and will not continue to execute.

var Customr = {
  baseUrl: "",
  {% if customer %}
    shopifyCustomer: {
      id: {{ }},
      token: {{ customer.metafields.customr_auth.token | json }}
  {% endif %}
  ready: function() {
    // Fires when all the proper data has been loaded in
  beforeValidate: function() {
    // Fires before form validation
  afterValidate: function(errors) {
    // Fires after form validation
  beforeRedirect: function() {
    // Fires before the browser is redirected to /account (or setting from admin)
    // Halt the redirect by returning `false`
  beforeLoginUser: function() {
    // Fires before customer login is submitted after successful register
  beforeFormUpdate: function() {
    // Fires before the form fields are filled with customer data
  afterFormUpdate: function(customer) {
    // Fires after the form fields are filled with customer data
  beforeSave: function() {
    // Fires before form is submitted
  afterSave: function(response) {
    // Fires after form is submitted, regardless of errors
  afterSaveSuccess: function(customer) {
    // Fires after form is submitted successfully
  afterSaveError: function(errors) {
    // Fires after form is submitted with errors

Follow these instructions if you’d like to remove the Customer Fields app code from your store. We’re also happy to do this for you for free at any point.

Did you duplicate your theme?

We always recommend you duplicate your theme before installing. If you did this, simply delete your duplicated theme. If we installed it for you, we would have done this already.

We recommend you duplicate your theme first, so as to avoid breaking changes.

Step 1

Delete snippets/customer-fields.liquid

Step 2

If templates/customers/account/register.orig.liquid exists, delete templates/customers/account/register.liquid

Step 3

Rename templates/customers/account/register.orig.liquid to templates/customers/account/register.liquid

Step 4

Delete templates/customers/account.edit.liquid

Step 5

Edit templates/customers/account.liquid

Find the following code and remove it:

{% raw %}

  <br><a href="/account?view=edit" style="font-size: 14px;">{{ shop.metafields.locales.edit }}</a>

{% endraw %}

You may install Customer Fields on any theme in your store. Here’s a quick snapshot of what we’ll do when we install Customer Fields on a theme:

  • Create snippets/customer-fields.liquid
  • Backup register template as templates/customers/register.orig.liquid
  • Update templates/customers/register.liquid
  • Update templates/customers/account.liquid
  • Create templates/customers/account.edit.liquid

Click HERE to learn more about installing your new form.

{% raw %} Follow these instructions if you’d like to install Customer Fields on your own. Note that you can also use our quick install or have us do it for you, we do free installs 😊

Step 1. Create snippets/customer-fields.liquid

Add the following code:

<div id="customer-fields" {% unless customer %}data-registration="true"{% endunless %}>
  {% form 'create_customer' %}
    <input type="hidden" name="shop" value="{{ shop.permanent_domain }}">
    <div class="fields"><!-- Fields loaded from server --></div>
    <div class="form-footer"></div>
      var Customr = {
        baseUrl: "",
        {% if customer %}
          shopifyCustomer: {
            id: {{ }},
            token: {{ customer.metafields.customr_auth.token | json }}
        {% endif %}
    <script src=""></script>
  {% endform %}

Step 2. Edit templates/customer/register.liquid

Find the following code:

{% form 'create_customer' %}
{% endform %}

and replace it with:

{% include 'customer-fields' %}

Step 3. Create templates/customers/account.edit.liquid

Copy all contents from templates/customers.register.liquid into the new template file.

Then find the following code:

{{ 'customer.register.title' | t }}

and replace it with:

{{ shop.metafields.locales.edit_account }}

Step 4. Edit templates/customers/account.liquid

Find the following code:

{{ 'customer.account.details' | t }}

and paste the following code directly after:

  <br><a href="/account?view=edit" style="font-size: 14px;">{{ shop.metafields.locales.edit }}</a>

{% endraw %}

Step 5. You’re all set!

You can now test the form by viewing theme’s registration page ([domain]/account/register)

Terms of Service

Please read these Terms and Conditions (“Terms”, “Terms and Conditions”) carefully before using the website (the “Service”) operated by Helium Development LLC (“us”, “we”, or “our”).

Your access to and use of the Service is conditioned upon your acceptance of and compliance with these Terms. These Terms apply to all visitors, users and others who wish to access or use the Service.

By accessing or using the Service you agree to be bound by these Terms. If you disagree with any part of the terms then you do not have permission to access the Service.


Some parts of the Service are billed on a subscription basis (“Subscription(s)”). You will be billed in advance on a recurring and periodic basis (“Billing Cycle”). Billing cycles are set on a monthly basis.

At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or Helium Development LLC cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting Helium Development LLC customer support team.

Payments are completed via Shopify’s application charges and will be applied to the associated Shopify account for billing.

Should automatic billing fail to occur for any reason, Helium Development LLC will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.

Free Trial

Helium Development LLC may, at its sole discretion, offer a Subscription with a free trial for a limited period of time (“Free Trial”).

You may be required to enter your billing information in order to sign up for the Free Trial.

If you do enter your billing information when signing up for the Free Trial, you will not be charged by Helium Development LLC until the Free Trial has expired. On the last day of the Free Trial period, unless you cancelled your Subscription, you will be automatically charged the applicable Subscription fees for the type of Subscription you have selected.

At any time and without notice, Helium Development LLC reserves the right to (i) modify the terms and conditions of the Free Trial offer, or (ii) cancel such Free Trial offer.Fee Changes

Helium Development LLC, in its sole discretion and at any time, may modify the Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.

Helium Development LLC will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.

Your continued use of the Service after the Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.


Certain refund requests for Subscriptions may be considered by Helium Development LLC on a case-by-case basis and granted in sole discretion of Helium Development LLC.


When you create an account with us, you guarantee that you are above the age of 18, and that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on the Service.

You are responsible for maintaining the confidentiality of your account and password, including but not limited to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all activities or actions that occur under your account and/or password, whether your password is with our Service or a third-party service. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account.

Intellectual Property

The Service and its original content, features and functionality are and will remain the exclusive property of Helium Development LLC and its licensors. The Service is protected by copyright, trademark, and other laws of both the United States and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of Helium Development LLC.

Links To Other Web Sites

Our Service may contain links to third party web sites or services that are not owned or controlled by Helium Development LLC.

Helium Development LLC has no control over, and assumes no responsibility for the content, privacy policies, or practices of any third party web sites or services. We do not warrant the offerings of any of these entities/individuals or their websites.

You acknowledge and agree that Helium Development LLC shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such third party web sites or services.

We strongly advise you to read the terms and conditions and privacy policies of any third party web sites or services that you visit.


We may terminate or suspend your account and bar access to the Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of the Terms.

If you wish to terminate your account, you may simply discontinue using the Service.

All provisions of the Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.


You agree to defend, indemnify and hold harmless Helium Development LLC and its licensee and licensors, and their employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, and expenses (including but not limited to attorney’s fees), resulting from or arising out of a) your use and access of the Service, by you or any person using your account and password, or b) a breach of these Terms.

Limitation Of Liability

In no event shall Helium Development LLC, nor its directors, employees, partners, agents, suppliers, or affiliates, be liable for any indirect, incidental, special, consequential or punitive damages, including without limitation, loss of profits, data, use, goodwill, or other intangible losses, resulting from (i) your access to or use of or inability to access or use the Service; (ii) any conduct or content of any third party on the Service; (iii) any content obtained from the Service; and (iv) unauthorized access, use or alteration of your transmissions or content, whether based on warranty, contract, tort (including negligence) or any other legal theory, whether or not we have been informed of the possibility of such damage, and even if a remedy set forth herein is found to have failed of its essential purpose.

Information Security

Any information or data inputted by you or customers is stored in a secure, non-encrypted, database. You agree to be fully responsible for any information lost, stolen, or modified.


Your use of the Service is at your sole risk. The Service is provided on an “AS IS” and “AS AVAILABLE” basis. The Service is provided without warranties of any kind, whether express or implied, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, non-infringement or course of performance.

Helium Development LLC its subsidiaries, affiliates, and its licensors do not warrant that a) the Service will function uninterrupted, secure or available at any particular time or location; b) any errors or defects will be corrected; c) the Service is free of viruses or other harmful components; or d) the results of using the Service will meet your requirements.


Some jurisdictions do not allow the exclusion of certain warranties or the exclusion or limitation of liability for consequential or incidental damages, so the limitations above may not apply to you.

Governing Law

These Terms shall be governed and construed in accordance with the laws of Washington, United States, without regard to its conflict of law provisions.

Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service, and supersede and replace any prior agreements we might have had between us regarding the Service.


We reserve the right, at our sole discretion, to modify or replace these Terms at any time. If a revision is material we will provide at least 30 days notice prior to any new terms taking effect. What constitutes a material change will be determined at our sole discretion.

By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use the Service.

Contact Us

If you have any questions about these Terms, please contact us.


The Customer Fields app for Shopify allows you as a shop owner to collect any unique information you’d like from your customers. You can replace Shopify’s standard registration form for customers, install on a separate page, or customize different forms for different types of users.

Demo Store

Open Live Demo

Customer information is important

We think capturing information about your customers is important. Customer Fields provides a way for you to build a custom registration form so you can collect relevant data from people who sign up on your store.

Customer Account Edit

With Customer Fields, you can add a form within your shop where your customers can edit their own information. No more emailing you for a simple email or name change. Name and email editing is covered under our basic plan.

Unique Customer Field Data

You can create your own unique custom fields for the data you need to collect from your customers. Use fields to collect information such as:

  • Birthday
  • Gender
  • Marketing opt-in
  • Photo ID (image/doc)
  • Phone number
  • Product preferences
  • Shipping and/or mailing address
  • Company name
  • Billing email

Some of the fields types you can create are:

  • Single line text
  • Text area
  • Number (decimal or integer)
  • Date
  • File upload
  • Dropdown menu
  • Radio button
  • Checkbox
  • Phone number
  • Email
  • State/Province, Country, etc.
  • And introducing “Group” fields!

Customer Email Notifications

Get notified when a customer creates or updates their account. Just set your email preferences and we’ll send you an email every time you get a new customer.


Customer information is sensitive, so we made sure to keep everything well protected. We are GDPR compliant


See Full Pricing