The Email Field


The email field is a text field for entering email addresses. 


Email Field Attributes and Terminology

The email field (like other Identity Cloud fields) provides a number of attributes that can be used when creating and formatting the field. Also like other Identity Cloud fields, the terminology used to represent these attributes in Console’s Registration Builder sometimes differs from the terminology required when using the Configuration APIs, which, in turn, sometimes differs from the terminology used if you view the underlying flow. 

Needless to say, that can be confusing at times. With that in mind, the following table shows the different email attributes and how they are referenced in Registration Builder, the Configuration API, and the flow; click the appropriate link in the flow column for more information about that attribute. Attributes highlighted in yellow are auto-generated when the field is created, and shouldn’t be referenced when making an API call (and can’t be accessed in Registration Builder).

Option used in Registration Builder

Parameter used when making an API call

Property name used in the flow

Name

name

name

Field Type

type

type

Schema Attribute

schemaAttribute

schemaId

Label

label

label

Placeholder Text

placeholder

placeholder

Tip

tip

tip

Prepopulate with data from identity provider

socialProfileData

engageData

Submit blank field values as null

emptyMeansNull

emptyMeansNull

Ignore updates submitted to this field

ignoreUpdate

ignoreUpdate

Data Validations

validation

validation

Forms

forms

forms



element



Creating an Email Field by Using the Configuration API

If you’re using the Configuration APIs to create an email field, you must include all the desired parameters and parameter values within the body parameter of your API call. That body parameter will look similar to the sample shown below (depending, of course, on the number of parameters you use). In the following example, required parameters are shown in red:

{
     "type": "email",
     "name": "myCustomEmailField",
     "schemaAttribute": "email",
     "label": {
          "key": "50ee3f638fb5eb583ce96065128c383b"
     },
     "tip": {
          "key": "50ee3f638fb5eb583ce96065128c383b"
     },
     "socialProfileData": "profile.email",
     "placeholder": {
          "key": "50ee3f638fb5eb583ce96065128c383b"
     },
     "forms": ["traditionalRegistrationForm"],
     "emptyMeansNull": true,
     "ignoreUpdate": false
}

There are at least three things to keep in mind when creating the body parameter:

  • The parameter must be formatted using JSON (JavaScript Object Notation). If you get the following error, that often means that your body parameter isn’t using valid JSON:
    400 Bad Request. The browser (or proxy) sent a request that this server could not understand.
  • The label, placeholder, and tip attributes must be formatted as JSON objects; that is, you must start with the name (e.g., tip) followed by a colon and a set of curly braces ({ }). Inside those curly braces, use the key parameter followed by the id of a translation key containing the text you want to use for the label/tip/placeholder. For example:
    "label": {"key": "352a99f1e9442568706468966749f1e9"}
    Note that you must reference a translation key (i.e., a  previously-defined piece of text) when creating a label or tip. Suppose you try defining your text within the API call:
    "label": "Alternate Email Address"
    That’s going to result in an invalid syntax error. Instead, use the ID for an existing translation key. If you don't have an existing translation key for the string Alternate Email Address then you'll need to create one before you can create the email field.

  • The forms attribute must be formatted as a JSON array, with the form names configured as a comma-separated list between square brackets. For example,
    "forms": ["traditionalRegistrationForm", "socialRegistrationForm"]

If you’re using Postman, your body parameter will look like this:

A complete Curl command for creating an email field should look something like this:

curl -L -X POST \
  'https://v1.api.us.janrain.com/config/79y4mqf2rt3bxs378kw5479xdu/flows/fieldExamples/fields' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Basic eTR4Zmc2ZjQ0bXNhYzN2ZXBqanZ4Z2d6dnQzZTNzazk6OTVjY3hrN2N6YnZ1eng2ZHB0ZTVrOXA2ZGo1Ynpla3U=' \
  --data-raw '{
     "type": "email",
     "name": "myCustomEmailField",
     "schemaAttribute": "email",
     "label": {
          "key": "50ee3f638fb5eb583ce96065128c383b"
       },
     "tip": {
          "key": "50ee3f638fb5eb583ce96065128c383b"
       },
     "socialProfileData": "profile.email",
     "placeholder": {
          "key": "50ee3f638fb5eb583ce96065128c383b"
       },
     "forms": ["traditionalRegistrationForm"],
     "emptyMeansNull": true,
     "ignoreUpdate": false
}'