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.
| 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
| ||||||||||||||||||||||||||||||||||||||||||||
| 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"
}Describes a LeadConduit field data type
| name required | string (TypeName)
| ||||||||||||||||||||||||||||||||||||||||||||
| 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"
]
}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:
LeadConduit provides two categories of 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.
Fields created to address needs unique needs:
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 are a namespacing mechanism that prevents data collision across accounts. When multiple accounts create custom fields, suffixes ensure uniqueness in naming.
Example scenario:
accta and acctbscore_accta and score_acctbscore_accta -> score_acctbscore field has the same meaning. Account A's score field might represent credit score, while Account B's score field might represent lead score.Suffix Naming Rules:
The real power of fields comes from their types. Each field has a type that determines how data is parsed, validated, and enriched:
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
Fields interact with several flow components:
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 |
Fields work with rules for validation:
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 |
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 |
Do:
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
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.
OK
Authorization information is missing or invalid.
[- {
- "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 new custom field, adding it to the list of all fields in the account.
Create a new field
| name required | string The human-readable name of the field | ||||||||||||||||||||||||||||||||||||||||||||
| type required | string (TypeName) The data type of this field
| ||||||||||||||||||||||||||||||||||||||||||||
| 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 |
Created
Authorization information is missing or invalid.
{- "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"
}{- "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"
}Fetch a single field.
OK
Authorization information is missing or invalid.
{- "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 an existing custom field. Standard fields cannot be updated.
Updated an existing field
| name required | string The human-readable name of the field | ||||||||||||||||||||||||||||||||||||||||||||
| type required | string (TypeName) The data type of this field
| ||||||||||||||||||||||||||||||||||||||||||||
| 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 |
OK
Authorization information is missing or invalid.
{- "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"
}{- "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 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.
OK
Authorization information is missing or invalid.
{- "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"
}[- {
- "name": "boolean",
- "maskable": true,
- "components": [ ],
- "examples": [
- "string"
], - "operators": [
- "is equal to"
]
}
]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.
OK
[- {
- "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"
]
}
]