Summary:
- Corrected the credit report request to use the proper “Merge” type instead of an inaccurate “Other/SoftCheck” label.
- Aligns the request format with Xactus’s official specifications, ensuring the system recognises and processes the reports correctly.
- Eliminates the errors that previously occurred when the Xactus product received an unsupported report type.
- Improves overall reliability of lead‑related reporting, reducing the need for manual follow‑up.
- Enhances data consistency across the platform, supporting smoother downstream operations.
Changelog:
Added:
-
Changed:
-
Fixed:
- Updated the credit report request type to “Merge,” resolving the product issue caused by the previous “Other/SoftCheck” setting.
Removed:
-
Summary:
- City and state values are now cleaned by trimming spaces, ensuring accurate address information.
- Login credentials in the request URL are URL‑encoded, preventing errors with special characters and enhancing security.
- The XML now includes the exact time the request is sent, providing a reliable audit trail.
- Branding and version information in the XML have been updated to reflect the current company name.
- The credit report type is changed to “Other” with a “SoftCheck” description, aligning the request with the correct reporting category.
- Minor formatting issues in the XML (extra characters) have been removed, improving data integrity.
Changelog:
Added:
- Dynamic timestamp element showing when the credit request is made.
- “SoftCheck” description for the credit report type.
Changed:
- Address fields now have leading/trailing spaces removed.
- Login identifiers in the request URL are now URL‑encoded.
- Company identifier and version strings in the XML updated to the current organization.
- Credit report type switched from “Merge” to “Other” with appropriate description.
- XML structure cleaned up for consistency.
Fixed:
- Eliminated stray characters that could corrupt the XML payload.
- Corrected handling of city and state values that previously could contain unwanted spaces.
Removed:
- Hard‑coded company name and version references that were outdated.
- Fixed “Merge” report type that was inaccurate for the intended request.
Summary:
- Verified leads are now always moved directly to the onboarding stage.
- The previous rule that only sent leads with a specific campaign to onboarding has been removed.
- All leads will follow the same onboarding workflow, providing a consistent experience.
- Simplifies the process and reduces the chance of leads being left in an incorrect status.
- Improves data accuracy for downstream systems that rely on the onboarding status.
Changelog:
Added:
- None
Changed:
- The handling of verified leads now uniformly assigns them to the onboarding status.
Fixed:
- Corrected the issue where leads without the specific campaign were incorrectly marked as active instead of onboarding.
Removed:
- The conditional check that limited onboarding to leads with the Lending Genie Application campaign.
Summary:
- Data pulls initiated through the PQ Portal are now recorded as automated actions instead of manual ones.
- Reporting and analytics will reflect the true automated nature of these operations, providing more accurate metrics.
- Teams can rely on the system to correctly categorize portal activity, reducing the need for manual verification.
- Aligns the system’s behavior with the actual workflow, improving consistency across processes.
Changelog:
Added:
- None
Changed:
- Classification of PQ Portal Xactus data pulls updated from “Manual” to “Automated”
Fixed:
- None
Removed:
- None
Summary:
- The report now displays “Lending Genie Application” instead of the old “Jumpstart Campaign” wording.
- This change aligns the terminology with the current product branding, reducing confusion for users.
- Consistent naming improves the accuracy of analytics and performance tracking across the platform.
- Stakeholders and customers will see a clearer, more relevant description of the source of the application.
Changelog:
Added:
-
Changed:
- Replaced the “orderedby” label in the prequalification report from “Jumpstart Campaign” to “Lending Genie Application”.
Fixed:
-
Removed:
-
Summary:
- User‑facing labels now read “Product ID” and “Subscription ID” instead of the brand‑specific “GHL Product ID” and “GHL Subscription ID”.
- API documentation has been updated to reflect the new generic terminology.
- Internal references and comments were revised to remove the GHL prefix, keeping the system terminology consistent.
- The change makes the interface clearer for users who are not familiar with the GHL brand and prepares the platform for future product extensions.
Changelog:
Added:
- None
Changed:
- Updated all user interface labels to use generic “Product ID” and “Subscription ID”.
- Revised API documentation to describe the fields with the new generic names.
- Modified internal documentation and comments to align with the new terminology.
Fixed:
- None
Removed:
- Removed the “GHL” prefix from product and subscription label terminology throughout the system.
Summary:
- Temporary files created during credit‑report processing are now tracked in the repository, ensuring consistent handling.
- Direct web (HTTP) access to these temporary files is blocked, protecting personal data from accidental exposure.
- A placeholder file is added so the directory remains in the repository and retains proper write permissions for the web server.
- Version‑control ignore settings are refined to keep the directory while excluding automatically generated response files that may contain sensitive information.
Changelog:
Added:
- Configuration to deny HTTP access to the temporary files directory.
- Placeholder file to maintain the directory in the repository and set correct permissions.
- Ignore‑rule entries to keep the directory while ignoring generated response files.
Changed:
- Updated ignore settings to allow the directory to be versioned but exclude its generated contents.
Fixed:
- Resolved a security issue by preventing public web access to temporary credit‑report dump files.
Removed:
- None.
Update Business Resources link to correct pricing page
Summary:
- The link for the “Post/Mail handling” resource now points to the virtual‑office pricing page instead of an unrelated affiliate page.
- Users are taken directly to the relevant pricing information, making it easier to evaluate the service.
- The correction eliminates confusion caused by the previous incorrect destination.
- Accurate linking helps maintain trust and reduces the need for support follow‑up.
Changelog:
Added:
- None
Changed:
- Updated the URL for the “Post/Mail handling” resource to the correct pricing page.
Fixed:
- Fixed an incorrect link that previously directed users to an unrelated affiliate page.
Removed:
- None
Summary:
- The system no longer records full webhook payloads or AI response bodies, protecting sensitive information.
- Title extraction from AI‑generated changelogs is now smarter, correctly handling cases where the title appears on the line after “Title:” or is wrapped in markdown.
- When the AI fails to provide a title, the original Bitbucket pull‑request title is used as a fallback, preventing “Untitled” entries in notifications.
- Extracted titles are saved as the primary name of the changelog record, ensuring consistent display across the platform.
- Log messages have been simplified to focus on essential information, making troubleshooting clearer.
Changelog:
Added:
- Logic to recover missing titles from the summary text.
- Fallback to the Bitbucket pull‑request title when the AI does not supply one.
- Storage of the extracted title as the main name of the changelog entry.
Changed:
- Logging of webhook and AI response bodies has been removed; logs now contain only method and header details.
- Updated success handling to include the title in the changelog record and to log the actual title text.
- Error messages for failed data fetches have been streamlined.
Fixed:
- Corrected title parsing so titles placed after “Title:” or with markdown are captured accurately.
- Prevented “Untitled” titles from appearing in Slack notifications by using the fallback title.
Removed:
- Detailed raw payload logging for incoming webhooks and AI responses.
Summary:
- Logging of email addresses, lender contact information, and personal financial details has been eliminated.
- Debug messages that exposed Social Security Number handling and user role information are no longer recorded.
- The system now avoids storing personally identifiable information (PII) in log files, reducing privacy and security risks.
- Cleaner logs make troubleshooting easier by removing unnecessary and sensitive data clutter.
Changelog:
Added:
- None
Changed:
- None
Fixed:
- None
Removed:
- All log entries that recorded email addresses, lender emails, and personal financial statements.
- Debug statements that printed SSN role mappings, user role indices, and related user identifiers.
- Log messages that displayed internal request details and data structures containing PII.
Summary:
- Removed a log entry that recorded a lead’s email address, eliminating exposure of personal data in system logs.
- Enhances privacy compliance by ensuring sensitive information is not stored in log files.
- Reduces the risk of accidental data leaks or unauthorized access to personally identifiable information.
- Aligns the application with data protection best practices and internal security policies.
- No change to user-facing functionality; the feature continues to work as before without logging the email address.
Changelog:
Added:
- None
Changed:
- None
Fixed:
- Prevented personal email addresses from being written to logs, improving data privacy.
Removed:
- The code line that logged the lead’s email address.
Summary:
- Users with an active paid subscription bypass the paywall and can continue using the dashboard without interruption.
- Customers with limited access now see every dashboard section except the Programs area when their credit score is below the required threshold.
- The profile page no longer displays a disabled Programs card; the entire section is hidden when access is not granted.
- Navigation rules have been tightened so that the Programs page cannot be opened by low‑score users, while all other pages remain reachable.
- The guided tour only includes steps about Programs when the user actually has access, making the tour clearer and more relevant.
- The “replay tour” button in the sidebar is enabled only for users who can view the full dashboard and are not blocked by other alerts.
- Unused imports, old conditional styling, and legacy route lists for Programs have been removed, simplifying the codebase.
Changelog:
Added:
- Check to include Programs steps in the tour only when access is granted.
- Logic to skip the paywall for users with an active paid subscription.
- Updated sidebar logic to correctly enable the “replay tour” option for eligible users.
Changed:
- Dashboard now displays all sections except Programs for limited‑access users with low scores.
- Profile page now completely hides the Programs section when access is denied.
- Route‑guard logic revised to block access to the Programs page for low‑score users while allowing all other pages.
- Access controller now treats “no access” reports differently when a paid subscription is already active.
Fixed:
- Paywall no longer appears for users who already have a paid subscription.
- Disabled visual cues and greyed‑out elements for Programs have been removed, preventing confusion.
- Replay‑tour functionality works correctly for users with appropriate access.
Removed:
- Unused import statements and old conditional classes for the Programs card.
- Legacy route list that previously allowed Programs access for limited‑access users.
- Old logic that displayed a disabled Programs card on the profile page.
Summary:
- The resource center no longer limits users to the vendors tab based on access level.
- All navigation tabs are now freely accessible, providing a consistent experience for every user.
- The upgrade/paywall modal that previously appeared for restricted users has been removed.
- Unused access‑control logic and related state handling have been eliminated, reducing complexity.
- The interface now loads faster and is easier to maintain because unnecessary checks are gone.
Changelog:
Added:
- None
Changed:
- Navigation behavior is now the same for all users, without automatic redirection or restrictions.
Fixed:
- None
Removed:
- Access‑level checks that forced limited‑access users to the vendors tab only.
- The paywall/upgrade modal that was triggered for restricted tabs.
- The hook and store used for dashboard access control and upgrade modal management.
- Related effect logic that handled redirection and modal opening.
Summary:
- The tooltip that appeared when hovering over the profile link has been removed.
- Screen readers now rely solely on a clear, descriptive label, avoiding duplicate information.
- The visual interface is less cluttered, providing a cleaner experience for all users.
- This change brings the application into better compliance with accessibility standards.
- Overall user interaction becomes more consistent across devices and assistive technologies.
Changelog:
Added:
- None
Changed:
- The link now uses only an accessible label without an extra tooltip.
Fixed:
- Accessibility issue where duplicate descriptions could confuse screen‑reader users.
Removed:
- The redundant tooltip (title attribute) from the profile link.
Summary:
- Introduced a maximize option that lets users expand the session activity panel to full width, giving a clearer view of lead data.
- Added an informational tooltip that explains how the average session duration metric is calculated, helping users interpret the numbers.
- Enhanced the session history modal with richer lead details, including contact information, a direct link to the lead’s profile in the CRM, and clearer status labels.
- Updated the way session durations are calculated so closed, active, and expired sessions are shown more accurately.
- Refined the layout and responsiveness of the admin dashboard for smoother use on both desktop and mobile devices.
- Improved the recent leads panel to display session counts and average durations in a more readable format.
Changelog:
Added:
- Maximize toggle for the session activity panel.
- Tooltip explaining average duration calculation.
- Direct “Open in CRM” link for each lead.
- Additional lead contact details (email, phone) in the session history modal.
- New icons and badges to highlight session statistics.
Changed:
- Layout of the admin dashboard and recent leads panel to accommodate the maximized view and improve mobile experience.
- Logic for determining session status and duration to provide more accurate information.
- Presentation of session counts and average durations for clearer insight.
- Header of the session history modal to include lead details and CRM link.
Fixed:
- Incorrect labeling of session statuses (e.g., “Closed” vs. “Expired”).
- Duration display for expired sessions without logout timestamps.
- Hidden elements that should appear when the panel is maximized.
Removed:
- (No items removed in this update)
Summary:
- Session duration now distinguishes between logged‑out and expired sessions and caps long idle periods, delivering a more realistic picture of user engagement.
- Reports include accurate counts of unique users and correctly calculate unique leads, giving clearer insight into audience reach.
- The admin lead list now displays phone numbers, total session count, and average session length, helping staff evaluate lead activity quickly.
- Query logic has been streamlined and validated, resulting in faster and more reliable data retrieval.
- Pagination now correctly reflects the number of available pages, eliminating empty result pages.
Changelog:
Added:
- A limit on how long an expired session can be counted toward duration.
- A reusable calculation for session duration that handles different end reasons.
- Phone number field, session count, and average session duration to the lead overview.
- Unique user count metric in session reports.
- Improved pagination handling for empty result sets.
Changed:
- Unified matching logic for session queries, simplifying and speeding up data fetching.
- Sorting of time‑series data to ensure chronological order.
- Calculation of unique leads to use proper identifiers.
- Report generation now uses the new session duration calculation.
- Lead list query now aggregates session statistics directly.
Fixed:
- Incorrect counting of unique leads in reports.
- Errors when handling invalid or malformed identifiers.
- Pagination displaying non‑existent pages.
- Bugs in duration calculations for expired sessions.
Removed:
- Redundant and complex conditional code for duration computation.
- Duplicate match constructions in query building.
- Unused import statements.
Summary:
- A new “Consent / Opt‑In” section is now displayed on lead records, allowing users to view and manage consent information directly.
- The lead detail page includes a dedicated sub‑panel that lists consent details, improving transparency and compliance tracking.
- Logging throughout the Monevo integration has been expanded to record each step of request building, submission, and response handling, making troubleshooting faster.
- Log messages now capture reasons for skipped or failed credit‑card and loan submissions, helping identify configuration or data issues quickly.
- The obsolete sample configuration file has been removed, reducing clutter and preventing accidental use of outdated settings.
- The order of existing sub‑panels has been adjusted so the new consent panel appears in a logical position.
Changelog:
Added:
- “Consent / Opt‑In” label and dedicated sub‑panel on lead detail views.
- Structured logging events for payload creation, API request/response stages, and outcome summaries.
Changed:
- Placement order of lead sub‑panels to accommodate the new consent panel.
- Logging approach shifted from generic error messages to detailed, context‑rich entries.
Fixed:
- Improved error and warning logs for missing campaign codes, duplicate codes, and API failures, providing clearer diagnostics.
- Enhanced handling of API response parsing and result retrieval logs.
Removed:
- Deprecated sample configuration file that was no longer used.
Summary:
- Replaced the retired Groq Llama‑3.3‑70b‑versatile model with the OpenAI GPT‑OSS 120B model as the system’s default AI engine.
- Ensures the service continues to operate smoothly now that the previous model is no longer available.
- Aligns the platform with an open‑source, widely supported model that fits current strategic goals.
- Preserves existing workflows, so users see no change in how the system behaves.
- Offers potential cost and performance benefits due to the new model’s pricing and scalability.
Changelog:
Added:
-
Changed:
- Updated the default AI model from the retired Groq Llama version to OpenAI GPT‑OSS 120B.
Fixed:
-
Removed:
-
Summary:
- Social Security Numbers are now saved as text strings rather than numeric values.
- This prevents loss of leading zeros and supports the full 9‑digit format.
- Removing numeric restrictions allows any valid SSN format to be entered without errors.
- The change simplifies data entry and improves compatibility with external systems that expect SSNs as strings.
Changelog:
Added:
- None
Changed:
- SSN fields for both co‑borrowers and businesses are now treated as text fields.
- Validation rules that limited SSNs to numeric ranges have been removed.
Fixed:
- None
Removed:
- Numeric range and formatting constraints previously applied to SSN entries.
Summary:
- The system now ignores empty or placeholder campaign codes, so it only contacts the Monevo service when a real code is provided.
- Any error messages that might reveal campaign codes are cleaned before being shown to customers, protecting sensitive configuration data.
- When no campaign codes are set, the application returns an empty but successful response instead of an error, keeping the user experience smooth.
- A check was added to ensure credit‑card and personal‑loan campaigns never share the same code, preventing processing conflicts.
- Logging has been enhanced to clearly record when campaign codes are missing or mis‑configured.
- A new Twilio bridge component forwards incoming and status SMS webhook data from the CRM to a middleware service, keeping logs and status updates in sync.
- The Twilio bridge can be turned on via configuration and uses a shared secret to secure the communication.
Changelog:
Added:
- A Twilio middleware bridge that forwards SMS webhook payloads to the backend middleware.
- Helper routines for safely resolving, normalizing, and sanitizing campaign codes.
- Logic to generate an empty successful response when no products are queried.
- Detailed logging for missing or duplicate campaign configurations.
Changed:
- Campaign code handling now validates and skips empty or placeholder values.
- Error and warning messages are filtered to remove any campaign‑code information before being shown to users.
- The decision process for running credit‑card and loan queries now depends on validated campaign codes.
- Conflict detection added to ensure credit‑card and loan campaigns use different codes.
- Overall response structure adjusted to provide clearer outcomes when products are skipped.
Fixed:
- Prevented accidental exposure of sensitive campaign‑code details in client‑facing messages.
- Resolved failures that occurred when configuration placeholders were present.
- Handled cases where both credit‑card and loan campaigns were unset without causing errors.
Removed:
- Direct use of raw configuration values for campaign codes without validation.
Summary:
- The session history view no longer shows IP addresses, protecting user privacy.
- New metrics identify sessions that ended without a logout, giving clearer insight into user behavior.
- Dashboard charts and summaries now include “no logout” counts, helping teams monitor session quality.
- Sensitive campaign‑code messages are automatically hidden from the pre‑approval interface, preventing accidental exposure of internal details.
- Minor wording updates improve clarity in the statistics section.
Changelog:
Added:
- Display of “no logout” session counts in charts and summary panels.
- Functions that filter out sensitive campaign‑code information from user‑facing messages.
Changed:
- Session statistics label shortened for clearer presentation.
- Logic for showing warnings and messages now excludes sensitive content.
- UI now presents “no logout” information alongside existing session data.
Fixed:
- Removed IP address visibility from session history, enhancing privacy.
- Prevented campaign‑code details from appearing in the pre‑approval UI.
Removed:
- IP address column and related data from the session history view.
- Fingerprint and IP fields from session log records.
Summary:
- New tools let developers mock partner data and back‑fill or repair session logs, simplifying testing and data maintenance.
- Scripts were added to sync Twilio SMS webhook settings and migrate Twilio logs, improving message delivery reliability.
- A communications service now checks user consent and suppression lists before sending messages, ensuring messages are only sent to permitted recipients.
- Automatic handling of SMS STOP/START keywords and email unsubscribe links was introduced, helping the business stay compliant with communication regulations.
- When users opt‑in or opt‑out, marketing consent flags are updated in the CRM automatically, keeping customer records accurate and synchronized.
- Several third‑party libraries were upgraded to newer versions, bringing security patches and performance enhancements.
Changelog:
Added:
- Operational scripts for partner data mocking, session‑log backfill/repair, and Twilio synchronization/migration.
- Full communications management feature that validates consent, processes opt‑out requests, and generates secure unsubscribe tokens and URLs.
Changed:
- Updated dependency versions for key libraries (e.g., Anthropic SDK, rimraf, mailparser) to newer releases.
Fixed:
- Applied library upgrades that resolve known security and stability issues.
Removed:
- None.
Summary:
- The system now determines a card’s category (personal or business) by also checking the detailed card information, not just the primary field.
- An optional card type field has been added to the detailed card data structure, allowing the source to provide the type in more places.
- Type definitions have been updated to recognize this new optional field, enhancing data consistency.
- Cards that previously might have been mis‑categorized are now correctly identified, leading to more accurate offers.
- When no type information is available, the default remains “personal,” preserving existing behavior.
Changelog:
Added:
- Optional card type attribute within detailed card information.
Changed:
- Card type detection now examines detailed card data first before falling back to other fields.
- Updated type definitions to include the new optional attribute.
Fixed:
- Incorrect categorization of cards when the type was only present in detailed information.
Summary:
- Introduced shared utilities to clean and compare subscription dates, handling empty or placeholder values.
- Added a single function that selects the most appropriate subscription record for a lead, replacing many duplicated queries.
- Updated lead and portal access checks to use the new logic, ensuring the system looks at the latest renewal date instead of an outdated end date.
- Fixed a bug where users lost portal access after their subscription renewed, now preserving access through the correct paid‑through date.
- Improved handling of cancelled subscriptions and free‑trial periods, giving a proper grace window and preventing premature lockout.
- Simplified the codebase by removing repetitive SQL statements, making future maintenance easier.
Changelog:
Added:
- Utility to normalize subscription dates.
- Utility to determine the correct “paid through” date using renewal and end dates.
- Central function to fetch the relevant subscription for access decisions.
Changed:
- Lead controller, detail view, and web service now use the central subscription fetch function.
- Access logic now relies on the calculated paid‑through date rather than the stale end date.
- Logging statements updated to reflect the new subscription handling.
- Queries streamlined to a single, consistent retrieval method.
Fixed:
- Restored portal access for users after subscription renewal by correcting date handling.
- Resolved incorrect lockout for cancelled subscriptions by applying the proper grace period.
- Fixed free‑trial expiry checks to use normalized dates.
- Eliminated errors caused by empty or placeholder dates.
Removed:
- Redundant raw SQL queries for subscription retrieval scattered across multiple files.
Summary:
- Introduces a new optional field that records the source of a lead’s onboarding.
- Allows staff to capture and view this information directly on lead records.
- Enables reporting and auditing of onboarding sources for better insight.
- Supports data import, so existing bulk processes can include the new information.
- Improves the ability to analyze which channels are most effective for acquiring leads.
Changelog:
Added:
- New “Onboarding Source” field for leads, with user‑visible label.
- Corresponding language entries so the field name appears correctly in the interface.
Changed:
- None
Fixed:
- None
Removed:
- None
Summary:
- Users can now switch between “Personal” and “Business” offers using clear tabs at the top of the offers page.
- The interface no longer shows the credit‑range filter, reducing complexity and focusing on the most relevant card categories.
- Offer cards are automatically shown only for the selected tab, making it easier to find the right products.
- The system now reliably determines whether a card is personal or business, even when the data source uses different field names.
- When no offers match the current filters, the message now mentions the active tab, guiding users to try the other tab or clear filters.
- Backend requests have been streamlined to send only the necessary category filters, improving performance.
Changelog:
Added:
- Tab navigation for selecting Personal or Business offers.
- Updated empty‑state messages that reference the active tab.
Changed:
- Filtering logic to display cards based on the selected tab.
- Calculation of active filters to reflect only category selections.
- Data handling to correctly identify card type from varied source fields.
- UI to memoize and render only the relevant set of cards.
- Backend query to omit credit‑range parameters and send only category filters.
Fixed:
- Correct identification of card type when the API uses different property names.
- Handling of missing filter data to prevent errors.
- Empty‑state wording to be more helpful for users.
Removed:
- Credit‑range filter UI and related backend parameter handling.
Summary:
- The API now accepts only a “card categories” filter, replacing the previous separate credit range and card type filters.
- This streamlines how clients request offer wall cards, making the request format easier to understand and use.
- Internally, the service logic has been updated to work with the single filter, removing unnecessary handling of old parameters.
- Response data is now consistently returned with a “cardCategories” field, while still supporting legacy data that used “cardType”.
- Unused filter processing has been removed, resulting in cleaner and more maintainable code.
Changelog:
Added:
- Mapping that supplies a “cardCategories” field in responses, falling back to legacy “cardType” data when needed.
Changed:
- API request handling now looks for “card_categories” instead of “credit_range” and “card_type”.
- Service method signature updated to accept only cardCategories.
- Filter construction now uses the single cardCategories filter.
- Response transformation now includes the unified cardCategories field.
Fixed:
- Ensured older data that used “cardType” is still presented under the new “cardCategories” name, preventing missing information for existing clients.
Removed:
- All processing related to credit_range and card_type filters.
Summary:
- User phone numbers are now saved during sign‑up and login, ensuring contact details are complete.
- First and last names from external profiles are captured, reducing missing personal information.
- Twilio integration adds the ability to send and monitor SMS and email messages.
- New API endpoints provide searchable views, refresh capability, and statistics for Twilio messages, giving staff clear insight into communication performance.
- Log records can now be updated with delivery status and error information, improving reporting accuracy.
- The automatic pre‑commit validation script has been removed, simplifying the local commit workflow.
Changelog:
Added:
- Twilio library for SMS and email services.
- New Twilio logs feature with dedicated data model and controller, offering listing, detail view, refresh, and status endpoints.
- Ability to update message status in logs.
- Utilities for extracting name and phone information from external profiles.
Changed:
- Authentication and sign‑up processes now store and update user phone numbers and names directly.
- User creation logic now includes optional phone, first name, and last name without overwriting existing data.
- Log service now includes a method to modify message status.
Fixed:
- Previously missing phone numbers are now correctly recorded for users.
- Name fields are no longer unintentionally cleared during sign‑up.
Removed:
- Pre‑commit hook that ran tests, type checks, and linting before each commit.
Summary:
- Introduces entry points that allow the system to receive NMI webhook notifications for recurring charges and transaction events.
- Adds new data fields to store NMI transaction IDs, customer vault IDs, subscription IDs, plan amounts, and any promo code used, enabling full traceability of each payment.
- Provides language strings and UI labels so staff can view NMI‑related information (transaction ID, promo code) directly in the application.
- Creates a dedicated “Promo Codes” module, allowing the business to define and apply discount codes with percentage or fixed‑amount options.
- Supplies utility functions that automatically create or update subscription records and payment events from NMI webhook data, ensuring accurate and idempotent syncing.
- Improves reporting and eligibility checks by linking NMI payment status with existing payment‑event workflows.
Changelog:
Added:
- Webhook entry points for NMI recurring and transaction notifications.
- New “Promo Codes” module with list definitions for discount types and applicability.
- UI language entries for NMI fields and promo‑code information.
- Database fields on payment events and subscriptions to capture NMI identifiers and promo codes.
- Comprehensive utility library for processing NMI subscription data, counting portal subscriptions, and syncing payment events.
Summary:
- The API documentation now shows the correct filter option for offer wall cards.
- “secured_credit_builder” is added alongside “prime” to reflect the full range of available card categories.
- This change prevents misunderstandings when developers set up filter parameters.
- Improves the accuracy of integration guides, reducing potential implementation errors.
- Aligns the example with the actual capabilities of the offer wall service.
Changelog:
Added:
- None
Changed:
- Updated the example request to use the correct card category filter (“secured_credit_builder”).
Fixed:
- Corrected a documentation error that listed an outdated or incomplete filter value.
Summary:
- The documentation no longer mentions a credit‑range filter for Offer Wall cards, matching the actual API behavior.
- Example API calls have been updated to exclude credit‑range parameters.
- Descriptions now clarify that only card‑category filters are available.
- The list of filter options presented to the front‑end is limited to existing card categories, removing the nonexistent credit‑range entries.
- This alignment prevents confusion for users and developers and ensures the docs accurately reflect what the system supports.
Changelog:
Added:
- None
Changed:
- Updated descriptions to state that only card‑category filtering is supported.
- Revised example requests to remove credit‑range fields.
- Modified filter‑options description to specify that only present card categories are listed.
Fixed:
- Corrected the mismatch between the documented filters and the actual API capabilities.
Removed:
- Credit‑range filter references from the documentation and response schema.
Summary:
- The website now includes the required Apple Pay domain verification file.
- Apple can confirm the site is authorized to accept Apple Pay payments.
- Customers can use Apple Pay directly at checkout, providing a faster and more secure payment option.
- Supporting Apple Pay can increase conversion rates and improve overall user satisfaction.
- The addition ensures compliance with Apple’s security guidelines, reducing the risk of payment issues.
Changelog:
Added:
- Apple Pay domain verification file to enable Apple Pay transactions.
Changed:
- None
Fixed:
- None
Removed:
- None
Summary:
- Introduces a new classification for cards as “Personal” or “Business,” allowing the system to differentiate offers based on user needs.
- Adds separate tabs on the Offer Wall so users can instantly switch between Personal and Business cards, improving navigation and relevance.
- Updates the administration interface to capture, store, and validate the new card type when creating or editing offers.
- Implements automatic tab selection via URL hash and ensures the page stays on the chosen tab after adding, editing, or deleting a card, providing a smoother user experience.
- Provides language entries for the new Personal/Business options, ensuring consistent terminology across the application.
Changelog:
Added:
- Personal and Business options for card classification.
- Tab controls on the Offer Wall for filtering cards by type.
- URL‑based tab persistence and reload handling to keep users on their selected view.
- Language entries for the new card type labels.
Changed:
- Administration screens now include and validate the card type field.
- Front‑end scripts were updated to manage tab switching, display logic, and page refresh behavior.
- Templates were modified to show the card type selector in add/edit dialogs.
Fixed:
- Page reloads after creating, updating, or deleting a card now retain the current tab instead of resetting to a default view.
- Display of empty states correctly reflects when no cards exist for the selected tab.
Removed:
- None.
Summary:
- The portal is now branded as LendingGenie, updating all public‑facing references.
- New environment settings enable secure payment tokenization through the NMI gateway.
- The analytics page now shows additional insights such as operating‑system usage, top external referrers, average visit duration, and total custom events.
- Detailed tables for paid‑keyword terms, ad content, and the most frequent custom events have been added.
- The admin header has been streamlined, removing unused navigation items and visual clutter for a cleaner experience.
- Descriptions and metric labels have been clarified (e.g., bounce data now reflects sessions, and events are highlighted).
Changelog:
Added:
- Environment variables for NMI tokenization key and script URL.
- Pie chart visualizing visitors’ operating systems.
- Bar chart displaying top external referrers.
- Metrics for average visit duration and total custom events.
- Tables for top UTM terms, UTM contents, and top custom events.
- New reusable admin header component.
Changed:
- All branding references switched from “Deliver Capital” to “LendingGenie.”
- Analytics description now includes “events.”
- Bounce metric detail updated to show bounced sessions instead of views.
- Layout grids adjusted to accommodate new charts and tables.
- Header simplified: logo, theme switcher, and several navigation links removed; logout handling refined.
Fixed:
- Corrected bounce metric labeling to accurately represent sessions.
- Resolved redundant logout pending state handling.
Removed:
- Legacy navigation links, theme switcher, logo component, and unused icon imports from the admin layout.
Summary:
- A new endpoint lets the system record custom user actions (e.g., button clicks) for deeper insight.
- Event submissions are protected by a rate‑limit to stop excessive or abusive traffic.
- The analytics report now includes additional metrics such as operating system breakdown, top referrer sites, average visit duration, bounce‑session rate, and detailed UTM term/content data.
- Event data is also summarized, showing total events and the most frequent event types.
- Calculations for bounce rate and average visit duration have been refined for more accurate results.
- The cleanup routine now removes outdated event records along with old view and duration data.
- Underlying libraries were upgraded to newer, more secure and stable versions.
Changelog:
Added:
- Ability to capture and store custom analytics events.
- Rate‑limit specifically for event recording requests.
- New report sections: operating system distribution, top referrers, average visit duration, bounce‑session metrics, top UTM terms and contents, total event count, and top event types.
- Automatic deletion of old event records during data retention cleanup.
Changed:
- Updated many third‑party libraries to their latest stable releases for security and performance improvements.
- Improved bounce‑rate and average visit duration calculations for greater accuracy.
Fixed:
- Corrected bounce‑rate computation to reflect session‑based bounces rather than individual page views.
Removed:
- None.
Summary:
- Users can now choose an existing lead as a co‑borrower directly from the lead’s sub‑panel.
- Removing a co‑borrower relationship no longer deletes the co‑borrower record; it only removes the link between the two leads.
- When a co‑borrower is unlinked, associated personal‑information entries are automatically cleared so the lead edit screen stays accurate.
- New background processes have been added to handle the cleanup after a relationship is removed, ensuring data stays consistent.
- The system now logs these actions for better traceability.
Changelog:
Added:
- A “Select Co‑Borrower” button that lets users link an existing lead as a co‑borrower.
- A post‑unlink cleanup routine that deletes related personal‑information rows.
- Registration of a new hook that runs after a relationship is deleted.
Changed:
- The existing removal routine now only unlinks the co‑borrower instead of deleting the lead record.
- Updated logging messages to reflect the new unlink‑only behavior.
Fixed:
- Prevented accidental loss of co‑borrower lead data when a link is removed.
- Ensured the lead edit view remains in sync by clearing stale personal‑information data after unlinking.
Removed:
- Automatic deletion of co‑borrower lead records when the relationship is removed.
Summary:
- The system now detects the Lending Genie App through a campaign instead of a lead status.
- This change improves the accuracy of lead tracking and synchronization with external systems.
- Leads are now properly identified and tagged based on their association with the Lending Genie Application campaign.
- The update enhances the overall workflow and data consistency for leads and campaigns.
Changelog:
Added:
- A new function to check if a lead is linked to the Lending Genie Application campaign.
Changed:
- The lead detection method now uses the campaign association instead of the lead status.
- The tagging and synchronization process for leads has been updated to reflect the new detection method.
Fixed:
- Inaccurate lead tracking and synchronization issues caused by the previous detection method.
Removed:
- The 'LG App' lead status is no longer used for detection purposes.
Summary:
- The system now categorizes users as "Warm Lead" instead of "LG App" during the prequalification and signup processes.
- This change improves the accuracy of user status tracking.
- It enhances the overall user experience by providing a more precise definition of their status.
- The update also ensures consistency in user status across different components of the system.
Changelog:
Added:
- None
Changed:
- The default status for users in prequalification and signup components from "LG App" to "Warm Lead".
- The definition of Google Connect type to accommodate the new "Warm Lead" status.
Fixed:
- None
Removed:
- The outdated "LG App" status for users in prequalification and signup components.
Summary:
- The layout of the Broker Notes, SMS, and Task tabs has been updated to match the Leads layout styling for consistency.
- Improvements have been made to the input fields and labels for better readability and usability.
- The assignment and priority fields for tasks have been rearranged for easier access.
- The overall design has been refined to enhance the user experience.
Changelog:
Added:
- New CSS styles to improve the layout and design of the Broker Notes, SMS, and Task tabs.
Changed:
- The layout of the Broker Notes, SMS, and Task tabs to match the Leads layout styling.
- The input fields and labels for tasks and notes have been updated for better usability.
Fixed:
- No specific fixes are mentioned, but the updates aim to improve the overall user experience.
Removed:
- No features or functionalities have been removed in this update.
Summary:
- Improved integration with Monevo for credit card and loan offers
- Enhanced handling of lead data for more accurate applications
- Added support for marketing opt-in and terms consent tracking
- Updated API endpoint and request parameters for better compatibility
- Introduced new configuration options for customizing the integration
Changelog:
Added:
- New fields for tracking terms consent and marketing opt-in
- Support for personal loans in addition to credit cards
- Configuration options for customizing the Monevo integration
Changed:
- Updated API endpoint and request parameters for better compatibility
- Improved handling of lead data for more accurate applications
- Enhanced error handling and logging for better debugging
Fixed:
- Issues with missing fields and incorrect data formatting
- Problems with API request payloads and response handling
Removed:
- Unused code and configuration options
- Redundant files and outdated documentation
Summary:
- Improved security for Leads Notes by masking sensitive information like Social Security Numbers (SSNs) in note descriptions.
- Enhanced display of note descriptions by preserving line breaks and removing unnecessary HTML tags.
- Fixed issues with note watchers by properly displaying their usernames.
- Improved handling of file uploads for notes to prevent potential security vulnerabilities.
- Enhanced password verification for users to improve overall system security.
Changelog:
Added:
- Functionality to mask SSNs in note descriptions.
- Functionality to format note descriptions for safe HTML display.
- Functionality to prepare notes for display, including escaping HTML and masking SSNs.
Changed:
- Note description processing to improve security and display.
- Password verification to use a more secure method.
Fixed:
- Issues with note watchers not being displayed correctly.
- Potential security vulnerabilities with file uploads.
Removed:
- Unnecessary code for processing note descriptions.
Summary:
- Improved activity timeline date filtering to show relevant activities
- Enhanced More Steps UI for better user experience
- Reduced noisy fatal logging to improve system performance and reduce errors
- Improved activity sorting to display most recent activities first
Changelog:
Added:
- New function to get activity filter date timestamp for accurate sorting
Changed:
- Logging level changed from fatal to debug to reduce noise and improve performance
- Activity date filtering now uses a more accurate method to determine activity dates
- Activity sorting now uses a more efficient and accurate method to display most recent activities first
Fixed:
- Issue with activity timeline date filter not showing correct activities
- Issue with More Steps UI not displaying correctly
Removed:
- Redundant and noisy fatal logging statements to improve system performance
Summary:
- The time it takes for the system to process payment returns has been adjusted
- This change aims to improve the overall payment processing experience
- The update helps prevent potential issues with payment returns being processed too quickly
- The new delay allows for more accurate and reliable payment processing
Changelog:
Changed:
- The payment return delay time has been increased to reduce potential processing issues
Fixed:
- Potential issues with payment returns being processed too quickly have been addressed
Note: Since there are no additions or removals, the Added and Removed sections are not included.
Summary:
- The payment link for upgrades is now directly accessible without needing to fetch it from an external source.
- This change improves the reliability of the upgrade process.
- It ensures that users can access the payment link consistently.
- The overall upgrade experience is more stable and efficient.
Changelog:
Added:
- A direct link to the payment page for upgrades.
Changed:
- The method of accessing the payment link for upgrades.
Fixed:
- Potential issues with fetching the payment link from an external source.
Removed:
- The need to fetch the payment link dynamically.
Summary:
- The loan type selection process has been improved by removing unnecessary options.
- Users will no longer see a blank "Select Loan Type" option, making it clearer what choices are available.
- This change helps to reduce confusion and makes the overall user experience more intuitive.
- By removing the redundant option, the system is more user-friendly and easier to navigate.
Changelog:
Added:
- None
Changed:
- The loan type dropdown now only shows relevant options.
Fixed:
- None
Removed:
- The blank "Select Loan Type" option from the loan type dropdown.
Summary:
- The system now tracks changes to the loan type field for leads.
- This improvement provides a clear record of when and how loan type information is updated.
- It enhances data integrity and transparency by monitoring all changes to this field.
- The audit trail enables better accountability and compliance with regulatory requirements.
Changelog:
Added:
- Audit tracking for the loan type field
Changed:
- The loan type field now has audit tracking enabled
Fixed:
- None
Removed:
- None
Summary:
- The type of loan can now be edited until a lead is converted to an opportunity.
- Changes to the loan type are saved automatically via the CRM.
- The loan type field remains editable even after a lead has been created, allowing for easier updates.
- The system now persists the loan type for existing leads, ensuring that changes are retained.
Changelog:
Added:
- Automatic saving of loan type changes via the CRM for existing leads.
Changed:
- The loan type field is now editable until a lead is converted to an opportunity.
- The system now persists loan type changes for existing leads.
Fixed:
- None
Removed:
- None
Summary:
- The desired loan amount can now be edited until a lead is converted to an opportunity.
- This change allows for more flexibility in the loan application process.
- Users can modify the loan amount as needed until the lead is converted.
- The system will prevent changes to the loan amount once the lead is converted to an opportunity.
Changelog:
Added:
- The ability to edit the desired loan amount until a lead is converted to an opportunity.
Changed:
- The loan amount field is now editable in more scenarios.
Fixed:
- The loan amount was previously locked too early in the process.
Removed:
- Unnecessary restrictions on editing the loan amount.
Summary:
- The application now loads more efficiently, reducing wait times for users.
- Form fields are more accurately populated with relevant data, making it easier for users to complete forms.
- The system can better handle different types of user input, such as addresses and employment information.
- The overall user experience has been improved with more intuitive and responsive form interactions.
Changelog:
Added:
- Autocomplete functionality for certain form fields, such as addresses and employer information.
Changed:
- The way the application loads and handles form data, resulting in improved performance and efficiency.
- The behavior of certain form fields to better accommodate different types of user input.
Fixed:
- Issues related to form loading and submission, ensuring a smoother user experience.
Removed:
- Unnecessary script tags and code, streamlining the application and reducing potential errors.
Releaseddc763-repo/dc_crm
#4905 ProductionBilal Alam
Change Overview
Summary:
- Verified leads are now always moved directly to the onboarding stage.
- The previous rule that only sent leads with a specific campaign to onboarding has been removed.
- All leads will follow the same onboarding workflow, providing a consistent experience.
- Simplifies the process and reduces the chance of leads being left in an incorrect status.
- Improves data accuracy for downstream systems that rely on the onboarding status.
Changelog:
Added:
- None
Changed:
- The handling of verified leads now uniformly assigns them to the onboarding status.
Fixed:
- Corrected the issue where leads without the specific campaign were incorrectly marked as active instead of onboarding.
Removed:
- The conditional check that limited onboarding to leads with the Lending Genie Application campaign.
Releaseddc763-repo/dc_crm
#4908 ProductionBilal Alam
Change Overview
Summary:
- Corrected the credit report request to use the proper “Merge” type instead of an inaccurate “Other/SoftCheck” label.
- Aligns the request format with Xactus’s official specifications, ensuring the system recognises and processes the reports correctly.
- Eliminates the errors that previously occurred when the Xactus product received an unsupported report type.
- Improves overall reliability of lead‑related reporting, reducing the need for manual follow‑up.
- Enhances data consistency across the platform, supporting smoother downstream operations.
Changelog:
Added:
-
Changed:
-
Fixed:
- Updated the credit report request type to “Merge,” resolving the product issue caused by the previous “Other/SoftCheck” setting.
Removed:
-
Releaseddc763-repo/dc_crm
#4906 ProductionBilal Alam
Change Overview
Summary:
- City and state values are now cleaned by trimming spaces, ensuring accurate address information.
- Login credentials in the request URL are URL‑encoded, preventing errors with special characters and enhancing security.
- The XML now includes the exact time the request is sent, providing a reliable audit trail.
- Branding and version information in the XML have been updated to reflect the current company name.
- The credit report type is changed to “Other” with a “SoftCheck” description, aligning the request with the correct reporting category.
- Minor formatting issues in the XML (extra characters) have been removed, improving data integrity.
Changelog:
Added:
- Dynamic timestamp element showing when the credit request is made.
- “SoftCheck” description for the credit report type.
Changed:
- Address fields now have leading/trailing spaces removed.
- Login identifiers in the request URL are now URL‑encoded.
- Company identifier and version strings in the XML updated to the current organization.
- Credit report type switched from “Merge” to “Other” with appropriate description.
- XML structure cleaned up for consistency.
Fixed:
- Eliminated stray characters that could corrupt the XML payload.
- Corrected handling of city and state values that previously could contain unwanted spaces.
Removed:
- Hard‑coded company name and version references that were outdated.
- Fixed “Merge” report type that was inaccurate for the intended request.
Releaseddc763-repo/dc_crm
#4903 ProductionBilal Alam
Change Overview
Summary:
- Data pulls initiated through the PQ Portal are now recorded as automated actions instead of manual ones.
- Reporting and analytics will reflect the true automated nature of these operations, providing more accurate metrics.
- Teams can rely on the system to correctly categorize portal activity, reducing the need for manual verification.
- Aligns the system’s behavior with the actual workflow, improving consistency across processes.
Changelog:
Added:
- None
Changed:
- Classification of PQ Portal Xactus data pulls updated from “Manual” to “Automated”
Fixed:
- None
Removed:
- None
Releaseddc763-repo/dc_crm
#4899 ProductionBilal Alam
Change Overview
Summary:
- The report now displays “Lending Genie Application” instead of the old “Jumpstart Campaign” wording.
- This change aligns the terminology with the current product branding, reducing confusion for users.
- Consistent naming improves the accuracy of analytics and performance tracking across the platform.
- Stakeholders and customers will see a clearer, more relevant description of the source of the application.
Changelog:
Added:
-
Changed:
- Replaced the “orderedby” label in the prequalification report from “Jumpstart Campaign” to “Lending Genie Application”.
Fixed:
-
Removed:
-
Releaseddc763-repo/dc_crm
#4897 ProductionBilal Alam
Change Overview
Summary:
- User‑facing labels now read “Product ID” and “Subscription ID” instead of the brand‑specific “GHL Product ID” and “GHL Subscription ID”.
- API documentation has been updated to reflect the new generic terminology.
- Internal references and comments were revised to remove the GHL prefix, keeping the system terminology consistent.
- The change makes the interface clearer for users who are not familiar with the GHL brand and prepares the platform for future product extensions.
Changelog:
Added:
- None
Changed:
- Updated all user interface labels to use generic “Product ID” and “Subscription ID”.
- Revised API documentation to describe the fields with the new generic names.
- Modified internal documentation and comments to align with the new terminology.
Fixed:
- None
Removed:
- Removed the “GHL” prefix from product and subscription label terminology throughout the system.
Releaseddc763-repo/dc_crm
#4894 ProductionBilal Alam
Change Overview
Summary:
- Temporary files created during credit‑report processing are now tracked in the repository, ensuring consistent handling.
- Direct web (HTTP) access to these temporary files is blocked, protecting personal data from accidental exposure.
- A placeholder file is added so the directory remains in the repository and retains proper write permissions for the web server.
- Version‑control ignore settings are refined to keep the directory while excluding automatically generated response files that may contain sensitive information.
Changelog:
Added:
- Configuration to deny HTTP access to the temporary files directory.
- Placeholder file to maintain the directory in the repository and set correct permissions.
- Ignore‑rule entries to keep the directory while ignoring generated response files.
Changed:
- Updated ignore settings to allow the directory to be versioned but exclude its generated contents.
Fixed:
- Resolved a security issue by preventing public web access to temporary credit‑report dump files.
Removed:
- None.
Releaseddc763-repo/dc_crm
#4889 ProductionBilal Alam
Change Overview
Summary:
- Removed a log entry that recorded a lead’s email address, eliminating exposure of personal data in system logs.
- Enhances privacy compliance by ensuring sensitive information is not stored in log files.
- Reduces the risk of accidental data leaks or unauthorized access to personally identifiable information.
- Aligns the application with data protection best practices and internal security policies.
- No change to user-facing functionality; the feature continues to work as before without logging the email address.
Changelog:
Added:
- None
Changed:
- None
Fixed:
- Prevented personal email addresses from being written to logs, improving data privacy.
Removed:
- The code line that logged the lead’s email address.
Releaseddc763-repo/dc_crm
#4890 ProductionBilal Alam
Change Overview
Summary:
- Logging of email addresses, lender contact information, and personal financial details has been eliminated.
- Debug messages that exposed Social Security Number handling and user role information are no longer recorded.
- The system now avoids storing personally identifiable information (PII) in log files, reducing privacy and security risks.
- Cleaner logs make troubleshooting easier by removing unnecessary and sensitive data clutter.
Changelog:
Added:
- None
Changed:
- None
Fixed:
- None
Removed:
- All log entries that recorded email addresses, lender emails, and personal financial statements.
- Debug statements that printed SSN role mappings, user role indices, and related user identifiers.
- Log messages that displayed internal request details and data structures containing PII.
Releaseddc763-repo/dc_crm
#4891 ProductionBilal Alam
Change Overview
Summary:
- The system no longer records full webhook payloads or AI response bodies, protecting sensitive information.
- Title extraction from AI‑generated changelogs is now smarter, correctly handling cases where the title appears on the line after “Title:” or is wrapped in markdown.
- When the AI fails to provide a title, the original Bitbucket pull‑request title is used as a fallback, preventing “Untitled” entries in notifications.
- Extracted titles are saved as the primary name of the changelog record, ensuring consistent display across the platform.
- Log messages have been simplified to focus on essential information, making troubleshooting clearer.
Changelog:
Added:
- Logic to recover missing titles from the summary text.
- Fallback to the Bitbucket pull‑request title when the AI does not supply one.
- Storage of the extracted title as the main name of the changelog entry.
Changed:
- Logging of webhook and AI response bodies has been removed; logs now contain only method and header details.
- Updated success handling to include the title in the changelog record and to log the actual title text.
- Error messages for failed data fetches have been streamlined.
Fixed:
- Corrected title parsing so titles placed after “Title:” or with markdown are captured accurately.
- Prevented “Untitled” titles from appearing in Slack notifications by using the fallback title.
Removed:
- Detailed raw payload logging for incoming webhooks and AI responses.
Summary:
- A new “Consent / Opt‑In” section is now displayed on lead records, allowing users to view and manage consent information directly.
- The lead detail page includes a dedicated sub‑panel that lists consent details, improving transparency and compliance tracking.
- Logging throughout the Monevo integration has been expanded to record each step of request building, submission, and response handling, making troubleshooting faster.
- Log messages now capture reasons for skipped or failed credit‑card and loan submissions, helping identify configuration or data issues quickly.
- The obsolete sample configuration file has been removed, reducing clutter and preventing accidental use of outdated settings.
- The order of existing sub‑panels has been adjusted so the new consent panel appears in a logical position.
Changelog:
Added:
- “Consent / Opt‑In” label and dedicated sub‑panel on lead detail views.
- Structured logging events for payload creation, API request/response stages, and outcome summaries.
Changed:
- Placement order of lead sub‑panels to accommodate the new consent panel.
- Logging approach shifted from generic error messages to detailed, context‑rich entries.
Fixed:
- Improved error and warning logs for missing campaign codes, duplicate codes, and API failures, providing clearer diagnostics.
- Enhanced handling of API response parsing and result retrieval logs.
Removed:
- Deprecated sample configuration file that was no longer used.
Releaseddc763-repo/dc_crm
#4886 ProductionBilal Alam
Change Overview
Summary:
- Replaced the retired Groq Llama‑3.3‑70b‑versatile model with the OpenAI GPT‑OSS 120B model as the system’s default AI engine.
- Ensures the service continues to operate smoothly now that the previous model is no longer available.
- Aligns the platform with an open‑source, widely supported model that fits current strategic goals.
- Preserves existing workflows, so users see no change in how the system behaves.
- Offers potential cost and performance benefits due to the new model’s pricing and scalability.
Changelog:
Added:
-
Changed:
- Updated the default AI model from the retired Groq Llama version to OpenAI GPT‑OSS 120B.
Fixed:
-
Removed:
-
Releaseddc763-repo/dc_crm
#4881 ProductionBilal Alam
Change Overview
Summary:
- Social Security Numbers are now saved as text strings rather than numeric values.
- This prevents loss of leading zeros and supports the full 9‑digit format.
- Removing numeric restrictions allows any valid SSN format to be entered without errors.
- The change simplifies data entry and improves compatibility with external systems that expect SSNs as strings.
Changelog:
Added:
- None
Changed:
- SSN fields for both co‑borrowers and businesses are now treated as text fields.
- Validation rules that limited SSNs to numeric ranges have been removed.
Fixed:
- None
Removed:
- Numeric range and formatting constraints previously applied to SSN entries.
Summary:
- The system now ignores empty or placeholder campaign codes, so it only contacts the Monevo service when a real code is provided.
- Any error messages that might reveal campaign codes are cleaned before being shown to customers, protecting sensitive configuration data.
- When no campaign codes are set, the application returns an empty but successful response instead of an error, keeping the user experience smooth.
- A check was added to ensure credit‑card and personal‑loan campaigns never share the same code, preventing processing conflicts.
- Logging has been enhanced to clearly record when campaign codes are missing or mis‑configured.
- A new Twilio bridge component forwards incoming and status SMS webhook data from the CRM to a middleware service, keeping logs and status updates in sync.
- The Twilio bridge can be turned on via configuration and uses a shared secret to secure the communication.
Changelog:
Added:
- A Twilio middleware bridge that forwards SMS webhook payloads to the backend middleware.
- Helper routines for safely resolving, normalizing, and sanitizing campaign codes.
- Logic to generate an empty successful response when no products are queried.
- Detailed logging for missing or duplicate campaign configurations.
Changed:
- Campaign code handling now validates and skips empty or placeholder values.
- Error and warning messages are filtered to remove any campaign‑code information before being shown to users.
- The decision process for running credit‑card and loan queries now depends on validated campaign codes.
- Conflict detection added to ensure credit‑card and loan campaigns use different codes.
- Overall response structure adjusted to provide clearer outcomes when products are skipped.
Fixed:
- Prevented accidental exposure of sensitive campaign‑code details in client‑facing messages.
- Resolved failures that occurred when configuration placeholders were present.
- Handled cases where both credit‑card and loan campaigns were unset without causing errors.
Removed:
- Direct use of raw configuration values for campaign codes without validation.
Summary:
- Introduced shared utilities to clean and compare subscription dates, handling empty or placeholder values.
- Added a single function that selects the most appropriate subscription record for a lead, replacing many duplicated queries.
- Updated lead and portal access checks to use the new logic, ensuring the system looks at the latest renewal date instead of an outdated end date.
- Fixed a bug where users lost portal access after their subscription renewed, now preserving access through the correct paid‑through date.
- Improved handling of cancelled subscriptions and free‑trial periods, giving a proper grace window and preventing premature lockout.
- Simplified the codebase by removing repetitive SQL statements, making future maintenance easier.
Changelog:
Added:
- Utility to normalize subscription dates.
- Utility to determine the correct “paid through” date using renewal and end dates.
- Central function to fetch the relevant subscription for access decisions.
Changed:
- Lead controller, detail view, and web service now use the central subscription fetch function.
- Access logic now relies on the calculated paid‑through date rather than the stale end date.
- Logging statements updated to reflect the new subscription handling.
- Queries streamlined to a single, consistent retrieval method.
Fixed:
- Restored portal access for users after subscription renewal by correcting date handling.
- Resolved incorrect lockout for cancelled subscriptions by applying the proper grace period.
- Fixed free‑trial expiry checks to use normalized dates.
- Eliminated errors caused by empty or placeholder dates.
Removed:
- Redundant raw SQL queries for subscription retrieval scattered across multiple files.
Releaseddc763-repo/dc_crm
#4871 ProductionBilal Alam
Change Overview
Summary:
- Introduces a new optional field that records the source of a lead’s onboarding.
- Allows staff to capture and view this information directly on lead records.
- Enables reporting and auditing of onboarding sources for better insight.
- Supports data import, so existing bulk processes can include the new information.
- Improves the ability to analyze which channels are most effective for acquiring leads.
Changelog:
Added:
- New “Onboarding Source” field for leads, with user‑visible label.
- Corresponding language entries so the field name appears correctly in the interface.
Changed:
- None
Fixed:
- None
Removed:
- None
Releaseddc763-repo/dc_crm
#4863 ProductionBilal Alam
Change Overview
Summary:
- Introduces a new classification for cards as “Personal” or “Business,” allowing the system to differentiate offers based on user needs.
- Adds separate tabs on the Offer Wall so users can instantly switch between Personal and Business cards, improving navigation and relevance.
- Updates the administration interface to capture, store, and validate the new card type when creating or editing offers.
- Implements automatic tab selection via URL hash and ensures the page stays on the chosen tab after adding, editing, or deleting a card, providing a smoother user experience.
- Provides language entries for the new Personal/Business options, ensuring consistent terminology across the application.
Changelog:
Added:
- Personal and Business options for card classification.
- Tab controls on the Offer Wall for filtering cards by type.
- URL‑based tab persistence and reload handling to keep users on their selected view.
- Language entries for the new card type labels.
Changed:
- Administration screens now include and validate the card type field.
- Front‑end scripts were updated to manage tab switching, display logic, and page refresh behavior.
- Templates were modified to show the card type selector in add/edit dialogs.
Fixed:
- Page reloads after creating, updating, or deleting a card now retain the current tab instead of resetting to a default view.
- Display of empty states correctly reflects when no cards exist for the selected tab.
Removed:
- None.
Releaseddc763-repo/dc_crm
#4868 ProductionBilal Alam
Change Overview
Summary:
- Introduces entry points that allow the system to receive NMI webhook notifications for recurring charges and transaction events.
- Adds new data fields to store NMI transaction IDs, customer vault IDs, subscription IDs, plan amounts, and any promo code used, enabling full traceability of each payment.
- Provides language strings and UI labels so staff can view NMI‑related information (transaction ID, promo code) directly in the application.
- Creates a dedicated “Promo Codes” module, allowing the business to define and apply discount codes with percentage or fixed‑amount options.
- Supplies utility functions that automatically create or update subscription records and payment events from NMI webhook data, ensuring accurate and idempotent syncing.
- Improves reporting and eligibility checks by linking NMI payment status with existing payment‑event workflows.
Changelog:
Added:
- Webhook entry points for NMI recurring and transaction notifications.
- New “Promo Codes” module with list definitions for discount types and applicability.
- UI language entries for NMI fields and promo‑code information.
- Database fields on payment events and subscriptions to capture NMI identifiers and promo codes.
- Comprehensive utility library for processing NMI subscription data, counting portal subscriptions, and syncing payment events.
Releaseddc763-repo/dc_crm
#4865 ProductionBilal Alam
Change Overview
Summary:
- The documentation no longer mentions a credit‑range filter for Offer Wall cards, matching the actual API behavior.
- Example API calls have been updated to exclude credit‑range parameters.
- Descriptions now clarify that only card‑category filters are available.
- The list of filter options presented to the front‑end is limited to existing card categories, removing the nonexistent credit‑range entries.
- This alignment prevents confusion for users and developers and ensures the docs accurately reflect what the system supports.
Changelog:
Added:
- None
Changed:
- Updated descriptions to state that only card‑category filtering is supported.
- Revised example requests to remove credit‑range fields.
- Modified filter‑options description to specify that only present card categories are listed.
Fixed:
- Corrected the mismatch between the documented filters and the actual API capabilities.
Removed:
- Credit‑range filter references from the documentation and response schema.
Releaseddc763-repo/dc_crm
#4867 ProductionBilal Alam
Change Overview
Summary:
- The API documentation now shows the correct filter option for offer wall cards.
- “secured_credit_builder” is added alongside “prime” to reflect the full range of available card categories.
- This change prevents misunderstandings when developers set up filter parameters.
- Improves the accuracy of integration guides, reducing potential implementation errors.
- Aligns the example with the actual capabilities of the offer wall service.
Changelog:
Added:
- None
Changed:
- Updated the example request to use the correct card category filter (“secured_credit_builder”).
Fixed:
- Corrected a documentation error that listed an outdated or incomplete filter value.
Releaseddc763-repo/dc_crm
#4859 ProductionBilal Alam
Change Overview
Summary:
- Users can now choose an existing lead as a co‑borrower directly from the lead’s sub‑panel.
- Removing a co‑borrower relationship no longer deletes the co‑borrower record; it only removes the link between the two leads.
- When a co‑borrower is unlinked, associated personal‑information entries are automatically cleared so the lead edit screen stays accurate.
- New background processes have been added to handle the cleanup after a relationship is removed, ensuring data stays consistent.
- The system now logs these actions for better traceability.
Changelog:
Added:
- A “Select Co‑Borrower” button that lets users link an existing lead as a co‑borrower.
- A post‑unlink cleanup routine that deletes related personal‑information rows.
- Registration of a new hook that runs after a relationship is deleted.
Changed:
- The existing removal routine now only unlinks the co‑borrower instead of deleting the lead record.
- Updated logging messages to reflect the new unlink‑only behavior.
Fixed:
- Prevented accidental loss of co‑borrower lead data when a link is removed.
- Ensured the lead edit view remains in sync by clearing stale personal‑information data after unlinking.
Removed:
- Automatic deletion of co‑borrower lead records when the relationship is removed.
Releaseddc763-repo/dc_crm
#4857 ProductionBilal Alam
Change Overview
Summary:
- The system now detects the Lending Genie App through a campaign instead of a lead status.
- This change improves the accuracy of lead tracking and synchronization with external systems.
- Leads are now properly identified and tagged based on their association with the Lending Genie Application campaign.
- The update enhances the overall workflow and data consistency for leads and campaigns.
Changelog:
Added:
- A new function to check if a lead is linked to the Lending Genie Application campaign.
Changed:
- The lead detection method now uses the campaign association instead of the lead status.
- The tagging and synchronization process for leads has been updated to reflect the new detection method.
Fixed:
- Inaccurate lead tracking and synchronization issues caused by the previous detection method.
Removed:
- The 'LG App' lead status is no longer used for detection purposes.
Releaseddc763-repo/dc_crm
#4853 ProductionBilal Alam
Change Overview
Summary:
- Improved integration with Monevo for credit card and loan offers
- Enhanced handling of lead data for more accurate applications
- Added support for marketing opt-in and terms consent tracking
- Updated API endpoint and request parameters for better compatibility
- Introduced new configuration options for customizing the integration
Changelog:
Added:
- New fields for tracking terms consent and marketing opt-in
- Support for personal loans in addition to credit cards
- Configuration options for customizing the Monevo integration
Changed:
- Updated API endpoint and request parameters for better compatibility
- Improved handling of lead data for more accurate applications
- Enhanced error handling and logging for better debugging
Fixed:
- Issues with missing fields and incorrect data formatting
- Problems with API request payloads and response handling
Removed:
- Unused code and configuration options
- Redundant files and outdated documentation
Releaseddc763-repo/dc_crm
#4852 ProductionBilal Alam
Change Overview
Summary:
- The layout of the Broker Notes, SMS, and Task tabs has been updated to match the Leads layout styling for consistency.
- Improvements have been made to the input fields and labels for better readability and usability.
- The assignment and priority fields for tasks have been rearranged for easier access.
- The overall design has been refined to enhance the user experience.
Changelog:
Added:
- New CSS styles to improve the layout and design of the Broker Notes, SMS, and Task tabs.
Changed:
- The layout of the Broker Notes, SMS, and Task tabs to match the Leads layout styling.
- The input fields and labels for tasks and notes have been updated for better usability.
Fixed:
- No specific fixes are mentioned, but the updates aim to improve the overall user experience.
Removed:
- No features or functionalities have been removed in this update.
Releaseddc763-repo/dc_crm
#4848 ProductionBilal Alam
Change Overview
Summary:
- Improved security for Leads Notes by masking sensitive information like Social Security Numbers (SSNs) in note descriptions.
- Enhanced display of note descriptions by preserving line breaks and removing unnecessary HTML tags.
- Fixed issues with note watchers by properly displaying their usernames.
- Improved handling of file uploads for notes to prevent potential security vulnerabilities.
- Enhanced password verification for users to improve overall system security.
Changelog:
Added:
- Functionality to mask SSNs in note descriptions.
- Functionality to format note descriptions for safe HTML display.
- Functionality to prepare notes for display, including escaping HTML and masking SSNs.
Changed:
- Note description processing to improve security and display.
- Password verification to use a more secure method.
Fixed:
- Issues with note watchers not being displayed correctly.
- Potential security vulnerabilities with file uploads.
Removed:
- Unnecessary code for processing note descriptions.
Releaseddc763-repo/dc_crm
#4846 ProductionBilal Alam
Change Overview
Summary:
- Improved activity timeline date filtering to show relevant activities
- Enhanced More Steps UI for better user experience
- Reduced noisy fatal logging to improve system performance and reduce errors
- Improved activity sorting to display most recent activities first
Changelog:
Added:
- New function to get activity filter date timestamp for accurate sorting
Changed:
- Logging level changed from fatal to debug to reduce noise and improve performance
- Activity date filtering now uses a more accurate method to determine activity dates
- Activity sorting now uses a more efficient and accurate method to display most recent activities first
Fixed:
- Issue with activity timeline date filter not showing correct activities
- Issue with More Steps UI not displaying correctly
Removed:
- Redundant and noisy fatal logging statements to improve system performance
Releaseddc763-repo/dc_crm
#4841 ProductionBilal Alam
Change Overview
Summary:
- The system now tracks changes to the loan type field for leads.
- This improvement provides a clear record of when and how loan type information is updated.
- It enhances data integrity and transparency by monitoring all changes to this field.
- The audit trail enables better accountability and compliance with regulatory requirements.
Changelog:
Added:
- Audit tracking for the loan type field
Changed:
- The loan type field now has audit tracking enabled
Fixed:
- None
Removed:
- None
Summary:
- Users with an active paid subscription bypass the paywall and can continue using the dashboard without interruption.
- Customers with limited access now see every dashboard section except the Programs area when their credit score is below the required threshold.
- The profile page no longer displays a disabled Programs card; the entire section is hidden when access is not granted.
- Navigation rules have been tightened so that the Programs page cannot be opened by low‑score users, while all other pages remain reachable.
- The guided tour only includes steps about Programs when the user actually has access, making the tour clearer and more relevant.
- The “replay tour” button in the sidebar is enabled only for users who can view the full dashboard and are not blocked by other alerts.
- Unused imports, old conditional styling, and legacy route lists for Programs have been removed, simplifying the codebase.
Changelog:
Added:
- Check to include Programs steps in the tour only when access is granted.
- Logic to skip the paywall for users with an active paid subscription.
- Updated sidebar logic to correctly enable the “replay tour” option for eligible users.
Changed:
- Dashboard now displays all sections except Programs for limited‑access users with low scores.
- Profile page now completely hides the Programs section when access is denied.
- Route‑guard logic revised to block access to the Programs page for low‑score users while allowing all other pages.
- Access controller now treats “no access” reports differently when a paid subscription is already active.
Fixed:
- Paywall no longer appears for users who already have a paid subscription.
- Disabled visual cues and greyed‑out elements for Programs have been removed, preventing confusion.
- Replay‑tour functionality works correctly for users with appropriate access.
Removed:
- Unused import statements and old conditional classes for the Programs card.
- Legacy route list that previously allowed Programs access for limited‑access users.
- Old logic that displayed a disabled Programs card on the profile page.
Update Business Resources link to correct pricing page
Summary:
- The link for the “Post/Mail handling” resource now points to the virtual‑office pricing page instead of an unrelated affiliate page.
- Users are taken directly to the relevant pricing information, making it easier to evaluate the service.
- The correction eliminates confusion caused by the previous incorrect destination.
- Accurate linking helps maintain trust and reduces the need for support follow‑up.
Changelog:
Added:
- None
Changed:
- Updated the URL for the “Post/Mail handling” resource to the correct pricing page.
Fixed:
- Fixed an incorrect link that previously directed users to an unrelated affiliate page.
Removed:
- None
Summary:
- The resource center no longer limits users to the vendors tab based on access level.
- All navigation tabs are now freely accessible, providing a consistent experience for every user.
- The upgrade/paywall modal that previously appeared for restricted users has been removed.
- Unused access‑control logic and related state handling have been eliminated, reducing complexity.
- The interface now loads faster and is easier to maintain because unnecessary checks are gone.
Changelog:
Added:
- None
Changed:
- Navigation behavior is now the same for all users, without automatic redirection or restrictions.
Fixed:
- None
Removed:
- Access‑level checks that forced limited‑access users to the vendors tab only.
- The paywall/upgrade modal that was triggered for restricted tabs.
- The hook and store used for dashboard access control and upgrade modal management.
- Related effect logic that handled redirection and modal opening.
Summary:
- The tooltip that appeared when hovering over the profile link has been removed.
- Screen readers now rely solely on a clear, descriptive label, avoiding duplicate information.
- The visual interface is less cluttered, providing a cleaner experience for all users.
- This change brings the application into better compliance with accessibility standards.
- Overall user interaction becomes more consistent across devices and assistive technologies.
Changelog:
Added:
- None
Changed:
- The link now uses only an accessible label without an extra tooltip.
Fixed:
- Accessibility issue where duplicate descriptions could confuse screen‑reader users.
Removed:
- The redundant tooltip (title attribute) from the profile link.
Summary:
- Introduced a maximize option that lets users expand the session activity panel to full width, giving a clearer view of lead data.
- Added an informational tooltip that explains how the average session duration metric is calculated, helping users interpret the numbers.
- Enhanced the session history modal with richer lead details, including contact information, a direct link to the lead’s profile in the CRM, and clearer status labels.
- Updated the way session durations are calculated so closed, active, and expired sessions are shown more accurately.
- Refined the layout and responsiveness of the admin dashboard for smoother use on both desktop and mobile devices.
- Improved the recent leads panel to display session counts and average durations in a more readable format.
Changelog:
Added:
- Maximize toggle for the session activity panel.
- Tooltip explaining average duration calculation.
- Direct “Open in CRM” link for each lead.
- Additional lead contact details (email, phone) in the session history modal.
- New icons and badges to highlight session statistics.
Changed:
- Layout of the admin dashboard and recent leads panel to accommodate the maximized view and improve mobile experience.
- Logic for determining session status and duration to provide more accurate information.
- Presentation of session counts and average durations for clearer insight.
- Header of the session history modal to include lead details and CRM link.
Fixed:
- Incorrect labeling of session statuses (e.g., “Closed” vs. “Expired”).
- Duration display for expired sessions without logout timestamps.
- Hidden elements that should appear when the panel is maximized.
Removed:
- (No items removed in this update)
Summary:
- The system now determines a card’s category (personal or business) by also checking the detailed card information, not just the primary field.
- An optional card type field has been added to the detailed card data structure, allowing the source to provide the type in more places.
- Type definitions have been updated to recognize this new optional field, enhancing data consistency.
- Cards that previously might have been mis‑categorized are now correctly identified, leading to more accurate offers.
- When no type information is available, the default remains “personal,” preserving existing behavior.
Changelog:
Added:
- Optional card type attribute within detailed card information.
Changed:
- Card type detection now examines detailed card data first before falling back to other fields.
- Updated type definitions to include the new optional attribute.
Fixed:
- Incorrect categorization of cards when the type was only present in detailed information.
Summary:
- The session history view no longer shows IP addresses, protecting user privacy.
- New metrics identify sessions that ended without a logout, giving clearer insight into user behavior.
- Dashboard charts and summaries now include “no logout” counts, helping teams monitor session quality.
- Sensitive campaign‑code messages are automatically hidden from the pre‑approval interface, preventing accidental exposure of internal details.
- Minor wording updates improve clarity in the statistics section.
Changelog:
Added:
- Display of “no logout” session counts in charts and summary panels.
- Functions that filter out sensitive campaign‑code information from user‑facing messages.
Changed:
- Session statistics label shortened for clearer presentation.
- Logic for showing warnings and messages now excludes sensitive content.
- UI now presents “no logout” information alongside existing session data.
Fixed:
- Removed IP address visibility from session history, enhancing privacy.
- Prevented campaign‑code details from appearing in the pre‑approval UI.
Removed:
- IP address column and related data from the session history view.
- Fingerprint and IP fields from session log records.
Summary:
- Users can now switch between “Personal” and “Business” offers using clear tabs at the top of the offers page.
- The interface no longer shows the credit‑range filter, reducing complexity and focusing on the most relevant card categories.
- Offer cards are automatically shown only for the selected tab, making it easier to find the right products.
- The system now reliably determines whether a card is personal or business, even when the data source uses different field names.
- When no offers match the current filters, the message now mentions the active tab, guiding users to try the other tab or clear filters.
- Backend requests have been streamlined to send only the necessary category filters, improving performance.
Changelog:
Added:
- Tab navigation for selecting Personal or Business offers.
- Updated empty‑state messages that reference the active tab.
Changed:
- Filtering logic to display cards based on the selected tab.
- Calculation of active filters to reflect only category selections.
- Data handling to correctly identify card type from varied source fields.
- UI to memoize and render only the relevant set of cards.
- Backend query to omit credit‑range parameters and send only category filters.
Fixed:
- Correct identification of card type when the API uses different property names.
- Handling of missing filter data to prevent errors.
- Empty‑state wording to be more helpful for users.
Removed:
- Credit‑range filter UI and related backend parameter handling.
Summary:
- The portal is now branded as LendingGenie, updating all public‑facing references.
- New environment settings enable secure payment tokenization through the NMI gateway.
- The analytics page now shows additional insights such as operating‑system usage, top external referrers, average visit duration, and total custom events.
- Detailed tables for paid‑keyword terms, ad content, and the most frequent custom events have been added.
- The admin header has been streamlined, removing unused navigation items and visual clutter for a cleaner experience.
- Descriptions and metric labels have been clarified (e.g., bounce data now reflects sessions, and events are highlighted).
Changelog:
Added:
- Environment variables for NMI tokenization key and script URL.
- Pie chart visualizing visitors’ operating systems.
- Bar chart displaying top external referrers.
- Metrics for average visit duration and total custom events.
- Tables for top UTM terms, UTM contents, and top custom events.
- New reusable admin header component.
Changed:
- All branding references switched from “Deliver Capital” to “LendingGenie.”
- Analytics description now includes “events.”
- Bounce metric detail updated to show bounced sessions instead of views.
- Layout grids adjusted to accommodate new charts and tables.
- Header simplified: logo, theme switcher, and several navigation links removed; logout handling refined.
Fixed:
- Corrected bounce metric labeling to accurately represent sessions.
- Resolved redundant logout pending state handling.
Removed:
- Legacy navigation links, theme switcher, logo component, and unused icon imports from the admin layout.
Summary:
- The website now includes the required Apple Pay domain verification file.
- Apple can confirm the site is authorized to accept Apple Pay payments.
- Customers can use Apple Pay directly at checkout, providing a faster and more secure payment option.
- Supporting Apple Pay can increase conversion rates and improve overall user satisfaction.
- The addition ensures compliance with Apple’s security guidelines, reducing the risk of payment issues.
Changelog:
Added:
- Apple Pay domain verification file to enable Apple Pay transactions.
Changed:
- None
Fixed:
- None
Removed:
- None
Summary:
- The system now categorizes users as "Warm Lead" instead of "LG App" during the prequalification and signup processes.
- This change improves the accuracy of user status tracking.
- It enhances the overall user experience by providing a more precise definition of their status.
- The update also ensures consistency in user status across different components of the system.
Changelog:
Added:
- None
Changed:
- The default status for users in prequalification and signup components from "LG App" to "Warm Lead".
- The definition of Google Connect type to accommodate the new "Warm Lead" status.
Fixed:
- None
Removed:
- The outdated "LG App" status for users in prequalification and signup components.
Summary:
- The time it takes for the system to process payment returns has been adjusted
- This change aims to improve the overall payment processing experience
- The update helps prevent potential issues with payment returns being processed too quickly
- The new delay allows for more accurate and reliable payment processing
Changelog:
Changed:
- The payment return delay time has been increased to reduce potential processing issues
Fixed:
- Potential issues with payment returns being processed too quickly have been addressed
Note: Since there are no additions or removals, the Added and Removed sections are not included.
Summary:
- The payment link for upgrades is now directly accessible without needing to fetch it from an external source.
- This change improves the reliability of the upgrade process.
- It ensures that users can access the payment link consistently.
- The overall upgrade experience is more stable and efficient.
Changelog:
Added:
- A direct link to the payment page for upgrades.
Changed:
- The method of accessing the payment link for upgrades.
Fixed:
- Potential issues with fetching the payment link from an external source.
Removed:
- The need to fetch the payment link dynamically.
Summary:
- Session duration now distinguishes between logged‑out and expired sessions and caps long idle periods, delivering a more realistic picture of user engagement.
- Reports include accurate counts of unique users and correctly calculate unique leads, giving clearer insight into audience reach.
- The admin lead list now displays phone numbers, total session count, and average session length, helping staff evaluate lead activity quickly.
- Query logic has been streamlined and validated, resulting in faster and more reliable data retrieval.
- Pagination now correctly reflects the number of available pages, eliminating empty result pages.
Changelog:
Added:
- A limit on how long an expired session can be counted toward duration.
- A reusable calculation for session duration that handles different end reasons.
- Phone number field, session count, and average session duration to the lead overview.
- Unique user count metric in session reports.
- Improved pagination handling for empty result sets.
Changed:
- Unified matching logic for session queries, simplifying and speeding up data fetching.
- Sorting of time‑series data to ensure chronological order.
- Calculation of unique leads to use proper identifiers.
- Report generation now uses the new session duration calculation.
- Lead list query now aggregates session statistics directly.
Fixed:
- Incorrect counting of unique leads in reports.
- Errors when handling invalid or malformed identifiers.
- Pagination displaying non‑existent pages.
- Bugs in duration calculations for expired sessions.
Removed:
- Redundant and complex conditional code for duration computation.
- Duplicate match constructions in query building.
- Unused import statements.
Summary:
- New tools let developers mock partner data and back‑fill or repair session logs, simplifying testing and data maintenance.
- Scripts were added to sync Twilio SMS webhook settings and migrate Twilio logs, improving message delivery reliability.
- A communications service now checks user consent and suppression lists before sending messages, ensuring messages are only sent to permitted recipients.
- Automatic handling of SMS STOP/START keywords and email unsubscribe links was introduced, helping the business stay compliant with communication regulations.
- When users opt‑in or opt‑out, marketing consent flags are updated in the CRM automatically, keeping customer records accurate and synchronized.
- Several third‑party libraries were upgraded to newer versions, bringing security patches and performance enhancements.
Changelog:
Added:
- Operational scripts for partner data mocking, session‑log backfill/repair, and Twilio synchronization/migration.
- Full communications management feature that validates consent, processes opt‑out requests, and generates secure unsubscribe tokens and URLs.
Changed:
- Updated dependency versions for key libraries (e.g., Anthropic SDK, rimraf, mailparser) to newer releases.
Fixed:
- Applied library upgrades that resolve known security and stability issues.
Removed:
- None.
Summary:
- The API now accepts only a “card categories” filter, replacing the previous separate credit range and card type filters.
- This streamlines how clients request offer wall cards, making the request format easier to understand and use.
- Internally, the service logic has been updated to work with the single filter, removing unnecessary handling of old parameters.
- Response data is now consistently returned with a “cardCategories” field, while still supporting legacy data that used “cardType”.
- Unused filter processing has been removed, resulting in cleaner and more maintainable code.
Changelog:
Added:
- Mapping that supplies a “cardCategories” field in responses, falling back to legacy “cardType” data when needed.
Changed:
- API request handling now looks for “card_categories” instead of “credit_range” and “card_type”.
- Service method signature updated to accept only cardCategories.
- Filter construction now uses the single cardCategories filter.
- Response transformation now includes the unified cardCategories field.
Fixed:
- Ensured older data that used “cardType” is still presented under the new “cardCategories” name, preventing missing information for existing clients.
Removed:
- All processing related to credit_range and card_type filters.
Summary:
- User phone numbers are now saved during sign‑up and login, ensuring contact details are complete.
- First and last names from external profiles are captured, reducing missing personal information.
- Twilio integration adds the ability to send and monitor SMS and email messages.
- New API endpoints provide searchable views, refresh capability, and statistics for Twilio messages, giving staff clear insight into communication performance.
- Log records can now be updated with delivery status and error information, improving reporting accuracy.
- The automatic pre‑commit validation script has been removed, simplifying the local commit workflow.
Changelog:
Added:
- Twilio library for SMS and email services.
- New Twilio logs feature with dedicated data model and controller, offering listing, detail view, refresh, and status endpoints.
- Ability to update message status in logs.
- Utilities for extracting name and phone information from external profiles.
Changed:
- Authentication and sign‑up processes now store and update user phone numbers and names directly.
- User creation logic now includes optional phone, first name, and last name without overwriting existing data.
- Log service now includes a method to modify message status.
Fixed:
- Previously missing phone numbers are now correctly recorded for users.
- Name fields are no longer unintentionally cleared during sign‑up.
Removed:
- Pre‑commit hook that ran tests, type checks, and linting before each commit.
Summary:
- A new endpoint lets the system record custom user actions (e.g., button clicks) for deeper insight.
- Event submissions are protected by a rate‑limit to stop excessive or abusive traffic.
- The analytics report now includes additional metrics such as operating system breakdown, top referrer sites, average visit duration, bounce‑session rate, and detailed UTM term/content data.
- Event data is also summarized, showing total events and the most frequent event types.
- Calculations for bounce rate and average visit duration have been refined for more accurate results.
- The cleanup routine now removes outdated event records along with old view and duration data.
- Underlying libraries were upgraded to newer, more secure and stable versions.
Changelog:
Added:
- Ability to capture and store custom analytics events.
- Rate‑limit specifically for event recording requests.
- New report sections: operating system distribution, top referrers, average visit duration, bounce‑session metrics, top UTM terms and contents, total event count, and top event types.
- Automatic deletion of old event records during data retention cleanup.
Changed:
- Updated many third‑party libraries to their latest stable releases for security and performance improvements.
- Improved bounce‑rate and average visit duration calculations for greater accuracy.
Fixed:
- Corrected bounce‑rate computation to reflect session‑based bounces rather than individual page views.
Removed:
- None.
Releaseddc763-repo/dc_lead_application
#671 ProductionBilal Alam
Change Overview
Summary:
- The type of loan can now be edited until a lead is converted to an opportunity.
- Changes to the loan type are saved automatically via the CRM.
- The loan type field remains editable even after a lead has been created, allowing for easier updates.
- The system now persists the loan type for existing leads, ensuring that changes are retained.
Changelog:
Added:
- Automatic saving of loan type changes via the CRM for existing leads.
Changed:
- The loan type field is now editable until a lead is converted to an opportunity.
- The system now persists loan type changes for existing leads.
Fixed:
- None
Removed:
- None
Releaseddc763-repo/dc_lead_application
#673 ProductionBilal Alam
Change Overview
Summary:
- The loan type selection process has been improved by removing unnecessary options.
- Users will no longer see a blank "Select Loan Type" option, making it clearer what choices are available.
- This change helps to reduce confusion and makes the overall user experience more intuitive.
- By removing the redundant option, the system is more user-friendly and easier to navigate.
Changelog:
Added:
- None
Changed:
- The loan type dropdown now only shows relevant options.
Fixed:
- None
Removed:
- The blank "Select Loan Type" option from the loan type dropdown.
Releaseddc763-repo/dc_lead_application
#667 ProductionBilal Alam
Change Overview
Summary:
- The application now loads more efficiently, reducing wait times for users.
- Form fields are more accurately populated with relevant data, making it easier for users to complete forms.
- The system can better handle different types of user input, such as addresses and employment information.
- The overall user experience has been improved with more intuitive and responsive form interactions.
Changelog:
Added:
- Autocomplete functionality for certain form fields, such as addresses and employer information.
Changed:
- The way the application loads and handles form data, resulting in improved performance and efficiency.
- The behavior of certain form fields to better accommodate different types of user input.
Fixed:
- Issues related to form loading and submission, ensuring a smoother user experience.
Removed:
- Unnecessary script tags and code, streamlining the application and reducing potential errors.
Releaseddc763-repo/dc_lead_application
#669 ProductionBilal Alam
Change Overview
Summary:
- The desired loan amount can now be edited until a lead is converted to an opportunity.
- This change allows for more flexibility in the loan application process.
- Users can modify the loan amount as needed until the lead is converted.
- The system will prevent changes to the loan amount once the lead is converted to an opportunity.
Changelog:
Added:
- The ability to edit the desired loan amount until a lead is converted to an opportunity.
Changed:
- The loan amount field is now editable in more scenarios.
Fixed:
- The loan amount was previously locked too early in the process.
Removed:
- Unnecessary restrictions on editing the loan amount.