Fields

Fields define your lead data model in LeadConduit. They specify what information you collect, how it's structured, and what types of data are valid. Think of fields as the columns in your lead database - each field represents a specific piece of information about a lead, from basic contact details to complex business-specific data.

Field

id
required
string (FieldID) ^[0-9a-fA-F]{24}$

24 character alpha-numeric BSON identifier

name
required
string

The human-readable name of the field

type
required
string (TypeName)

The data type of this field

Enum: Description
boolean

A boolean is a value that can be interpreted as true or false

city

The name of a city as part of an address

credential

A credential or other sensitive value. Credentials are not written to the database.

date

A date expressed as a year, month, and day

dob

A date of birth expressed as a year, month, and day

email

An email address

first_name

A first name value

gender

A value representing gender

ip

An IP address value

last_name

A last name value

number

A numeric value

phone

A US telephone number

postal_code

The postal code portion of an address

range

A numeric range such as 1-10

ssn

A US Social Security Number. Not written to the database.

state

The state portion of an address

street

The street portion of an address

string

A generic string value

time

A date-time value

trustedform_url

The TrustedForm Certificate URL

url

A generic URL

description
string

The textual description of the purpose of this field

standard
boolean

Read-only flag indicating whether this is a built-in LeadConduit field

aggregate
boolean
deprecated
boolean

The flag indicating that this field should no longer be used

see
string (FieldID) ^[0-9a-fA-F]{24}$

The alternative field ID to be used instead of this deprecated field

created_at
string <date-time> (Timestamp)

Read-only time the field was created

updated_at
string <date-time> (Timestamp)

Read-only time the field was last updated

{
  • "id": "first_name",
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "see": "first_name",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Type

Describes a LeadConduit field data type

name
required
string (TypeName)
Enum: Description
boolean

A boolean is a value that can be interpreted as true or false

city

The name of a city as part of an address

credential

A credential or other sensitive value. Credentials are not written to the database.

date

A date expressed as a year, month, and day

dob

A date of birth expressed as a year, month, and day

email

An email address

first_name

A first name value

gender

A value representing gender

ip

An IP address value

last_name

A last name value

number

A numeric value

phone

A US telephone number

postal_code

The postal code portion of an address

range

A numeric range such as 1-10

ssn

A US Social Security Number. Not written to the database.

state

The state portion of an address

street

The street portion of an address

string

A generic string value

time

A date-time value

trustedform_url

The TrustedForm Certificate URL

url

A generic URL

maskable
boolean

Are values of this type masked before they are persisted to the LeadConduit database?

required
Array of objects (TypeComponent) <= 0 items
Array of strings or objects

Example values for this type, used for testing and documentation

operators
required
Array of strings
Items Enum: "is equal to" "is not equal to" "is blank" "is not blank" "is greater than" "is greater than or equal to" "is less than" "is less than or equal to" "is true" "is not true" "is false" "is not false" "format is valid" "format is invalid" "includes" "does not include" "is included in" "is not included in" "is between" "is not between" "matches pattern" "does not match pattern"
{
  • "name": "boolean",
  • "maskable": true,
  • "components": [ ],
  • "examples": [
    • "string"
    ],
  • "operators": [
    • "is equal to"
    ]
}

Why Fields Matter

Without a consistent data model, lead processing becomes chaos. Every vendor sends different field names, every system expects different formats, and data quality suffers. Fields solve this by:

  • Standardizing Data - Common fields work the same way everywhere
  • Enforcing Types - Each field knows what kind of data it holds
  • Enabling Validation - Invalid data is caught and flagged
  • Supporting Intelligence - Typed fields provide parsed components

Standard vs Custom Fields

LeadConduit provides two categories of fields:

Standard Fields

Pre-defined fields for common lead data:

Category Examples Purpose
Contact Email, Phone 1, Phone 2, Phone 3 Core contact information
Identity First Name, Last Name, Age, Gender Personal identification
Location Address 1, Address 2, City, State, Postal Code Home Address
Many Others Hundreds of standard fields by vertical and use case Misc.

A built-in standard field catalog provides consistent field names and normalized values across all flows and accounts dramatically reducing the operational cost of maintaining data integrations between parties.

We strongly encourage you to use a standard field instead of create a custom field.

Custom Fields

Fields created to address needs unique needs:

  • Common lead information not availalbe as a standard field (let us know so we can add it to our catalog!)
  • Proprietary or internal tracking information
  • Lead seller specific tracking information

Custom fields are just as powerful as standard fields - they support all the same types and validation. Nevertheless, try to avoid using custom fields if you can. It will make technical setup and maintenance much easier.

Field Suffixes

Field suffixes are a namespacing mechanism that prevents data collision across accounts. When multiple accounts create custom fields, suffixes ensure uniqueness in naming.

Example scenario:

  • Account A adds a field called "score"
  • Account B also wants a field called "score"
  • Their account suffixes are: accta and acctb
  • The field IDs are score_accta and score_acctb
  • If Account A wants to deliver a lead to Account B, a manual mapping must be added: score_accta -> score_acctb
  • Account A must ensure that Account B's score field has the same meaning. Account A's score field might represent credit score, while Account B's score field might represent lead score.
  • The suffix prevents automatic field mapping from making mistakes.

Suffix Naming Rules:

  • 3-5 alphanumeric characters
  • Lowercase only
  • Must be unique across all entities
  • Optional but recommended for entities with custom fieldsEvery custom is uniquely named across the platform.

Field Types and Intelligence

The real power of fields comes from their types. Each field has a type that determines how data is parsed, validated, and enriched:

Example: Phone Field

Raw Input: "(555) 123-4567 ext 890"

Parsed Result:
- phone_1: "5551234567"
- phone_1.area: "555"
- phone_1.exchange: "123"
- phone_1.line: "4567"
- phone_1.extension: "890"
- phone_1.valid: true
- phone_1.mobile: false

Using Fields in Flows

Fields interact with several flow components:

1. Source Configuration

When configuring a source, you map vendor fields to your standard fields:

Vendor Sends Maps To Result
contact_email email Vendor's data fills your email field
primary_phone phone_1 Vendor's data fills your phone_1 field
loan_amt loan_amount Vendor's data fills your loan_amount field

2. Validation Rules

Fields work with rules for validation:

  • "lead.email is valid"
  • "lead.phone_1 is not blank"
  • "lead.loan_amount is between 5000 and 100000"

4. Recipient Mapping

When configuring an outboudn integration, fields map to downstram system requirements:

Your Field Recipient Expects Result
email Email_Address__c Your email becomes their Email_Address__c
phone_1 PrimaryPhone Your phone_1 becomes their PrimaryPhone

Field Namespaces

Fields exist in different namespaces depending on context. It's important to know that data collected during a lead flow does sits outside the lead.* namespace, which is reserved for data that's submitted by the source into the flow.

Appended data does not require a field in the flow. Instead, appended data is dynamic and "shaped" as it comes back from recipient step processing.

Namespace Contains Example
(no prefix) Custom fields loan_type, credit_score
lead.* All field values submitted with the lead lead.email, lead.phone_1
appended.* Enhancement data appended.demographics.income

Best Practices

Choosing Fields

Do:

  • Use standard fields when they fit your needs
  • Create custom fields only when necessary
  • Use descriptive names for custom fields
  • Include units in field names when relevant (e.g., loan_amount_usd)

Don't:

  • Duplicate standard fields with custom versions

  • Use generic names like field1, custom1

  • Store multiple values in one field

  • Ignore field types - use the right type for your data

  • Types - How fields parse and validate data

  • Mappings - How fields transform between systems

  • Rules - How fields are used in business logic

  • Templates - How to access field values dynamically

List all fields

Get the list of all fields, including all standard and custom fields. Optionally, provide a flow_id query parameter to return only the fields referenced by a specific flow.

SecurityAPIKey
Request
query Parameters
flow_id
string (ID) ^[0-9a-fA-F]{24}$

Optional ID of a flow. When provided, only fields referenced by that flow are returned.

Example: flow_id=5fd4371e940df5a34a3888b2
Responses
200

OK

401

Authorization information is missing or invalid.

get/fields
Request samples
Response samples
application/json
[
  • {
    • "id": "first_name",
    • "name": "First Name",
    • "type": "boolean",
    • "description": "string",
    • "standard": true,
    • "aggregate": true,
    • "deprecated": true,
    • "see": "first_name",
    • "created_at": "2019-08-24T14:15:22Z",
    • "updated_at": "2019-08-24T14:15:22Z"
    }
]

Create a field

Create a new custom field, adding it to the list of all fields in the account.

SecurityAPIKey
Request
Request Body schema: application/json
required

Create a new field

name
required
string

The human-readable name of the field

type
required
string (TypeName)

The data type of this field

Enum: Description
boolean

A boolean is a value that can be interpreted as true or false

city

The name of a city as part of an address

credential

A credential or other sensitive value. Credentials are not written to the database.

date

A date expressed as a year, month, and day

dob

A date of birth expressed as a year, month, and day

email

An email address

first_name

A first name value

gender

A value representing gender

ip

An IP address value

last_name

A last name value

number

A numeric value

phone

A US telephone number

postal_code

The postal code portion of an address

range

A numeric range such as 1-10

ssn

A US Social Security Number. Not written to the database.

state

The state portion of an address

street

The street portion of an address

string

A generic string value

time

A date-time value

trustedform_url

The TrustedForm Certificate URL

url

A generic URL

description
string

The textual description of the purpose of this field

standard
boolean

Read-only flag indicating whether this is a built-in LeadConduit field

aggregate
boolean
deprecated
boolean

The flag indicating that this field should no longer be used

created_at
string <date-time> (Timestamp)

Read-only time the field was created

updated_at
string <date-time> (Timestamp)

Read-only time the field was last updated

Responses
201

Created

401

Authorization information is missing or invalid.

post/fields
Request samples
application/json
{
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}
Response samples
application/json
{
  • "id": "first_name",
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "see": "first_name",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a field

Fetch a single field.

SecurityAPIKey
Request
path Parameters
id
required
string (ID) ^[0-9a-fA-F]{24}$

ID of the field to get

Example: 5fd4371e940df5a34a3888b2
Responses
200

OK

401

Authorization information is missing or invalid.

get/fields/{id}
Request samples
Response samples
application/json
{
  • "id": "first_name",
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "see": "first_name",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a field

Update an existing custom field. Standard fields cannot be updated.

SecurityAPIKey
Request
path Parameters
id
required
string (ID) ^[0-9a-fA-F]{24}$

ID of the field to update

Example: 5fd4371e940df5a34a3888b2
Request Body schema: application/json
required

Updated an existing field

name
required
string

The human-readable name of the field

type
required
string (TypeName)

The data type of this field

Enum: Description
boolean

A boolean is a value that can be interpreted as true or false

city

The name of a city as part of an address

credential

A credential or other sensitive value. Credentials are not written to the database.

date

A date expressed as a year, month, and day

dob

A date of birth expressed as a year, month, and day

email

An email address

first_name

A first name value

gender

A value representing gender

ip

An IP address value

last_name

A last name value

number

A numeric value

phone

A US telephone number

postal_code

The postal code portion of an address

range

A numeric range such as 1-10

ssn

A US Social Security Number. Not written to the database.

state

The state portion of an address

street

The street portion of an address

string

A generic string value

time

A date-time value

trustedform_url

The TrustedForm Certificate URL

url

A generic URL

description
string

The textual description of the purpose of this field

standard
boolean

Read-only flag indicating whether this is a built-in LeadConduit field

aggregate
boolean
deprecated
boolean

The flag indicating that this field should no longer be used

created_at
string <date-time> (Timestamp)

Read-only time the field was created

updated_at
string <date-time> (Timestamp)

Read-only time the field was last updated

Responses
200

OK

401

Authorization information is missing or invalid.

put/fields/{id}
Request samples
application/json
{
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}
Response samples
application/json
{
  • "id": "first_name",
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "see": "first_name",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a field

Delete an existing custom field. If a field is referenced in a flow and is deleted, an HTTP 202 will be returned but that flow will continue to operate as though the field still exists. The errors for each flow will be returned to the response body and the recorded on the flow's error property. More changes to the flow must dereference the field.

Standard fields cannot be deleted.

SecurityAPIKey
Request
path Parameters
id
required
string (ID) ^[0-9a-fA-F]{24}$

ID of the field to delete

Example: 5fd4371e940df5a34a3888b2
Responses
202

OK

401

Authorization information is missing or invalid.

delete/fields/{id}
Request samples
Response samples
application/json
{
  • "id": "first_name",
  • "name": "First Name",
  • "type": "boolean",
  • "description": "string",
  • "standard": true,
  • "aggregate": true,
  • "deprecated": true,
  • "see": "first_name",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List changes to a Field

Lists all the changes made to a Field

SecurityAPIKey
Request
path Parameters
id
required
string (ID) ^[0-9a-fA-F]{24}$

ID of the Field

Example: 5fd4371e940df5a34a3888b2
Responses
200

OK

get/fields/{id}/changelogs
Request samples
Response samples
application/json
null

List data types

Lists the data types available for fields or vars

SecurityAPIKey
Responses
200

OK

get/types
Request samples
Response samples
application/json
[
  • {
    • "name": "boolean",
    • "maskable": true,
    • "components": [ ],
    • "examples": [
      • "string"
      ],
    • "operators": [
      • "is equal to"
      ]
    }
]

List variables

The /vars resource is used to identify which data points have been collected in your flows. This resource is used to determine which data points are available for exports and stats queries.

As a lead is processed by a flow, a variable for every field value and every piece of appended data is created. If the variable for a data point already exists, a new one is not created. That is to say that there will only ever be one lead.email variable. Each time an email address is collected, the last_seen_at timestamp is updated.

SecurityAPIKey
Request
query Parameters
flow_id
string (ID) ^[0-9a-fA-F]{24}$

Return only variables where the flow ID matches this value (multiple flow_id parameters may be used to select variables across several specific flows)

Example: flow_id=5fd4371e940df5a34a3888b2
start
string <date-time> (Timestamp)

Return only variables seen at or after this time

end
string <date-time> (Timestamp)

Return only variables created at or before this time

exclude
Array of strings
Responses
200

OK

get/vars
Request samples
Response samples
application/json
[
  • {
    • "name": "string",
    • "last_used_at": "2019-08-24T14:15:22Z",
    • "first_used_at": "2019-08-24T14:15:22Z",
    • "type": "string",
    • "description": "string",
    • "label": "string",
    • "module_id": "string",
    • "entity_id": "5fd4371e940df5a34a3888b2",
    • "examples": [
      • "string"
      ]
    }
]