-
Notifications
You must be signed in to change notification settings - Fork 0
Add comprehensive Reference.md documentation #176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
- Created Reference.md with complete documentation for all 21 types - Includes detailed examples, component extraction, and operator information - Documents aggregation behavior and maskable types - Added link to Reference.md in README for easy discovery 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Renamed document from "LeadConduit Types - Complete Documentation" to "Types Reference" - Corrected maskable type documentation for SSN, DOB, and Credential - Clarified that NO components are preserved after processing for maskable types - Updated examples to show data is only available during processing - Made it clear that all maskable data becomes asterisks with no accessible components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added Important Limitation section explaining that valid only checks area code/exchange - Clarified that the line portion (last 4 digits) is not verified for connectivity - Recommended third-party services (Trestle, Telesign, BriteVerify) for deliverability - Corrected international number handling - they return valid: false, not parsed - Added "What It Does NOT Verify" section listing connectivity limitations - Updated geographic limitation to be clearer about international numbers 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
jgrayson676
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found a few spots with incorrect or unclear information
| " Chicago " → "Chicago" // Whitespace trimmed | ||
| ``` | ||
|
|
||
| **Field Examples:** City, Property City, Employer City |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these examples meant to be standard fields within LC? If so, a lot of these are incorrect: Employer City, Application Date, Co-Borrower Email, etc.
|
|
||
| --- | ||
|
|
||
| ### DOB Type (Date of Birth) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section is incorrect, only the month and day are masked
| No components accessible - all values masked | ||
| ``` | ||
|
|
||
| **Field Examples:** DOB, Mortgage Co-Borrower DOB, Spouse DOB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO these examples are especially misleading. dob isn't currently used for any standard fields in production.
|
|
||
| Comprehensive phone number parsing and validation for US/Canada numbers with real-world verification. | ||
|
|
||
| **Geographic Limitation**: Currently only supports US and Canadian phone numbers. International numbers from other countries will be marked as invalid (valid: false) and will not parse correctly, even if they have a valid format in their home country. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is only partially correct. Parsing assumes a US or Canadian number, however if the number includes a country code that will be used instead.
| "$1,000 to $10,000" → min: 1000, max: 10000 | ||
|
|
||
| Special Cases: | ||
| "787041234" → "78704-1234" (9 digits treated as ZIP+4) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have no idea where this is coming from
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slop 😆
|
|
||
| Some types contain sensitive data that are automatically masked for security: | ||
| - **SSN**: Social Security Numbers - all components masked | ||
| - **DOB**: Dates of birth - all components masked (including age and year) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same issue as the dob section above
| Area: "512", | ||
| Exchange: "789", | ||
| Is Tollfree: false | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing country_calling_code
cgrayson
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some questions and feedback inline; but one main thing that wasn't clear was: who this reference is for? LC app users? API users? Internal engineering? External engineering?
| **Supported Formats:** | ||
| - US: `M/D/YYYY` (`6/2/2014`), `M/D/YY` (`6/2/14`), `MM-DD-YYYY` (`06-02-2014`) | ||
| - ISO: `YYYY-MM-DD` (`2014-06-02`) | ||
| - European: `D/M/YYYY` (`18/7/2014`), `D-M-YYYY` (`18-7-2014`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably specify precedence of M/D formats over D/M, & how that works.
| - Format for display: `{{Phone 1 > Area}}-{{Phone 1 > Exchange}}-{{Phone 1 > Line}}` | ||
| - Check validity: `Phone 1 > Valid is true` | ||
|
|
||
| **Important Limitation**: The `valid` property only confirms the area code and exchange are legitimate - it does NOT verify the full number is connected or deliverable. The "line" portion (last 4 digits) could still be invalid or disconnected. For true deliverability verification, use third-party Add-On services like Trestle, Telesign, or BriteVerify in a flow step to collect carrier-level metadata, then evaluate the appended data in a subsequent filter step to block disconnected numbers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is mostly duplication of validation/verification information above. I'd either merge them or cut this.
| "$1,000 to $10,000" → min: 1000, max: 10000 | ||
|
|
||
| Special Cases: | ||
| "787041234" → "78704-1234" (9 digits treated as ZIP+4) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slop 😆
| - Send to integration: `{{Social Security Number > Last Four}}` | ||
| - Check if provided: `Social Security Number > Valid is true` | ||
|
|
||
| **Note:** After processing completes, these components are NOT available |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Processing" used throughout this section seems vague to me. "Lead-handling", maybe? And/or tied to previous core ideas above.
| - Must be HTTPS | ||
| - Must be from valid TrustedForm domain | ||
| - Certificate expires after 90 days | ||
| - Environment must match (production/staging) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unclear.
| IF Postal Code > Country Code equals "US" THEN use US validation | ||
| ``` | ||
|
|
||
| ## Integration with LeadConduit |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All this, except analytics: repetitive & introductory
| 5. **Storage** uses normalized format | ||
| 6. **Delivery** can use any component | ||
|
|
||
| ### Analytics and Aggregation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey! New & useful info 🎉 Might belong earlier in the doc (or at least a mention of it)
| } | ||
| ``` | ||
|
|
||
| **Types That Don't Aggregate (Privacy):** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would have put most of the rest of this section (except maybe "use cases") in the "what is?" section.
|
|
||
| This aggregation system ensures analytics remain powerful while protecting individual privacy by never storing complete personal information in reporting systems. | ||
|
|
||
| ## Best Practices |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another section that I'm afraid I see no value in. Some of it is prescriptive ("Be specific"), and some isn't ("Parse once"). And some of it is nonsense. "Plan for analytics"? No user – whether an LC end-user or a developer using this Node library – needs to plan for analytics. Or consider components, or think about validation, etc. As long as they don't use string for everything, they get all that for free, that's the whole point.
| 3. **Normalize for storage**: Consistent format improves queries | ||
| 4. **Aggregate thoughtfully**: Only extract needed analytics data | ||
|
|
||
| ## Common Misconceptions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Silly, and adding very little, imo.
🤖 Generated with Claude Code
Description of the change
Type of change
Related tickets
Checklists
Development and Testing
Code Review
Tracking
QA