Your Loan Origination Data Template
Your Loan Origination Data Template
- Recommended attributes to collect
- Key activities to track
- Guidance for data extraction
Loan Origination Attributes
| Name | Description | ||
|---|---|---|---|
| Activity ActivityName | The name of a specific business step or event that occurred within the loan origination process. | ||
| Description This attribute represents a single task or milestone in the loan application lifecycle, such as 'Initial Review Performed' or 'Underwriting Completed'. These activities form the nodes in the process map, and their sequence defines the process flow. Analyzing the sequence, frequency, and duration of these activities helps identify common process paths, deviations, and bottlenecks. It is crucial for understanding what work is being done and in what order, forming the basis of all process mining analysis. Why it matters This attribute defines the steps of the process, allowing for the visualization and analysis of the process flow, which is the core of process mining. Where to get This is typically derived from changes in the 'Stage' or 'Status' fields on the Loan object in nCino, or from related Task or Event records. Examples Loan Application CreatedUnderwriting CommencedLoan Decision RenderedFunds Disbursed | |||
| Loan Application ID LoanApplicationId | A unique identifier assigned to each loan application, serving as the primary key for tracking the entire origination process. | ||
| Description The Loan Application ID uniquely identifies each individual loan request throughout its entire lifecycle. It serves as the central entity to group all associated activities and data, allowing for a complete trace of the origination journey for a specific loan. In process mining, this ID acts as the Case ID. Every event, from submission to the final decision, is linked back to this identifier. This enables the reconstruction of the end-to-end process flow for each application, which is fundamental for cycle time analysis, variant analysis, and bottleneck identification. Why it matters This is the essential Case ID that connects all process steps, making it possible to analyze the end-to-end journey of each loan application. Where to get This is typically the primary key of the Loan object in nCino, often referenced as Examples LA-2023-00123LA-2023-00456LA-2024-00789 | |||
| Start Time EventTime | The timestamp indicating when a specific activity or event began. | ||
| Description The Start Time, or event timestamp, records the exact date and time an activity occurred. This chronological data is essential for ordering events correctly and reconstructing the process flow as it happened in reality. This timestamp is the foundation for all time-based analysis. It is used to calculate cycle times between activities, identify waiting times and delays, and measure overall case duration. Accurate timestamps are critical for performance monitoring and bottleneck analysis. Why it matters This timestamp provides the chronological order of events, which is essential for calculating all performance metrics like cycle times and durations. Where to get This can be sourced from system-generated timestamps like 'CreatedDate' on related records or the timestamp of a specific field change in the field history. Examples 2023-10-26T10:00:00Z2023-10-26T14:30:00Z2023-10-27T09:15:00Z | |||
| Last Data Update LastDataUpdateTimestamp | The timestamp indicating when the data was last refreshed from the source system. | ||
| Description This attribute records the date and time of the last data extraction from the source system. It provides context for the freshness of the data being analyzed. In dashboards and reports, this information is critical for users to understand how current the analysis is. It helps manage expectations and ensures that decisions are made based on an understood timeframe of the underlying data. Why it matters Provides crucial context on data freshness, ensuring users understand how up-to-date the process analysis is. Where to get This timestamp is generated by the data extraction tool or ETL process at the time of the data pull. Examples 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Source System SourceSystemName | The name of the system from which the data was extracted. | ||
| Description This attribute identifies the source application where the event data originated. For this process, it will typically be 'nCino'. While it may seem redundant if all data comes from one system, it is crucial for data governance and becomes vital when integrating data from multiple systems, such as a separate credit scoring engine or document management platform. It ensures clarity on data provenance. Why it matters Identifies the origin of the data, which is crucial for data governance, troubleshooting, and when combining data from multiple systems. Where to get This is a static value, 'nCino', applied during the data extraction and transformation process. Examples nCinonCino-ProdnCino-UAT | |||
| Application Channel ApplicationChannel | The channel through which the loan application was submitted, such as Online, In-Branch, or Broker. | ||
| Description This attribute identifies the submission source of the loan application. Different channels can have varying levels of data completeness and customer interaction, which may impact the subsequent process flow. Analyzing the process by channel helps to evaluate channel efficiency. For example, one could compare the cycle times and rework rates of applications submitted online versus those submitted in a branch. These insights can inform strategic decisions about channel investment and process optimization for specific sources. Why it matters Helps compare the efficiency, speed, and quality of different submission channels, guiding strategic improvements and investments. Where to get This is typically stored in a picklist field on the Loan object, often named 'Channel' or 'Source'. Examples Online PortalBranchBroker NetworkMobile App | |||
| Assigned Department AssignedDepartment | The department or team responsible for the loan application at a specific stage. | ||
| Description This attribute indicates the functional group, like 'Origination', 'Underwriting', or 'Closing', that owns the activity. This may be derived from the assigned user's profile or a dedicated field on the loan record. Analyzing the process from a departmental view is critical for understanding cross-functional collaboration. It helps measure handoff times between departments, identifies delays caused by inter-departmental transfers, and provides a high-level view of where work is being performed in the organization. Why it matters Crucial for analyzing inter-departmental handoffs, measuring team-level performance, and identifying cross-functional bottlenecks. Where to get This information can be derived from the assigned user's Department field on their User record, or from a custom 'Team' or 'Queue' assignment field on the Loan object. Examples Loan OriginationUnderwritingCredit RiskClosing | |||
| Assigned User AssignedUser | The user, such as a loan officer or underwriter, responsible for performing the activity. | ||
| Description This attribute identifies the individual employee who executed a specific task or is assigned to the loan application at a given stage. This is often tracked as the record 'Owner' in nCino. Analyzing data by user helps in understanding workload distribution, individual performance, and resource utilization. It can highlight overburdened employees or teams and identify top performers, which is valuable for resource management and training. Why it matters This enables analysis of workload distribution, team performance, and resource allocation, helping to identify bottlenecks related to specific users or teams. Where to get Typically from the 'OwnerId' field on the Loan object or related Task objects, which can be joined with the User object to get the user's name. Examples Alice SmithBob JohnsonCharlie Brown | |||
| Decision Outcome DecisionOutcome | The final decision made on the loan application, such as Approved, Declined, or Withdrawn. | ||
| Description This attribute captures the result of the 'Loan Decision Rendered' activity. It is a critical case-level attribute that defines the final state of a completed loan application process. This attribute is essential for outcome-based analysis. It allows for comparing process flows that lead to different outcomes, for example, analyzing the common paths of approved versus declined applications. It is also the basis for calculating key metrics like the Loan Decline Rate. Why it matters Allows for filtering and comparing processes based on their final business outcome, which is key for identifying what process patterns lead to success or failure. Where to get Typically found in a 'Status' or 'Stage' field on the Loan object once the process has concluded. The specific values are configuration-dependent. Examples ApprovedDeclinedWithdrawn by Applicant | |||
| End Time EventEndTime | The timestamp indicating when an activity or event was completed. | ||
| Description The End Time marks the completion of an activity. The difference between the Start Time and End Time of an activity represents its processing time. This attribute is essential for distinguishing between processing time (active work) and waiting time (idle time between activities). Analyzing processing times helps identify which specific steps are most time-consuming, while the gap between one activity's End Time and the next one's Start Time reveals handoff delays. Why it matters Enables the calculation of precise activity processing times, which is key to differentiating active work time from idle waiting time. Where to get This can be sourced from system-generated timestamps like 'LastModifiedDate' on related records, or the timestamp of a subsequent field change in the field history. Examples 2023-10-26T11:30:00Z2023-10-26T17:00:00Z2023-10-27T11:45:00Z | |||
| Loan Amount LoanAmount | The monetary value of the loan requested by the applicant. | ||
| Description This attribute represents the principal amount of the loan being applied for. The loan amount can significantly influence the complexity and duration of the origination process, with larger or more complex loans often requiring additional scrutiny or steps. In analysis, Loan Amount is a powerful tool for segmentation. It allows for investigating whether higher-value loans take longer to process, have higher rework rates, or follow different process paths. It is also fundamental for financial reporting and understanding the value of the loan portfolio being processed. Why it matters Provides key financial context and allows for segmenting analysis to see if loan value correlates with process complexity, duration, or outcomes. Where to get Located in a currency field on the Loan object, often named 'Amount' ( Examples 250000.0035000.00750000.00 | |||
| Loan Product Type LoanProductType | The specific type of loan product being applied for, such as Mortgage, Auto Loan, or Personal Loan. | ||
| Description This attribute categorizes the loan application based on the financial product being offered. Different loan products often have distinct process variations, cycle times, and risk profiles. Segmenting the process analysis by Loan Product Type is crucial for a meaningful comparison. It helps to understand how different products affect process efficiency and allows for the creation of tailored dashboards, such as tracking disbursement throughput for mortgages versus auto loans. This ensures that performance is evaluated in the correct business context. Why it matters Enables process analysis to be segmented by business context, revealing how different products impact process efficiency, duration, and pathways. Where to get This is typically stored in a 'Product' or 'Loan Type' field on the nCino Loan object (LLC_Loan__c). Examples Conventional MortgageAuto Loan - NewUnsecured Personal Loan | |||
| Activity Processing Time ActivityProcessingTime | The calculated duration of time spent actively working on an activity. | ||
| Description This metric represents the elapsed time from an activity's Start Time to its End Time. It measures the 'touch time' or active work period for a given process step. This calculated attribute is vital for performance analysis. It helps distinguish active work time from idle or wait time, allowing analysts to pinpoint which specific tasks are the most time-consuming, as opposed to identifying long delays between steps. It is a key input for resource capacity planning and efficiency improvements. Why it matters Measures the active work duration for each step, helping to identify the most time-consuming tasks and differentiate them from waiting time. Where to get This is calculated by taking the difference between the 'EventEndTime' and the 'EventTime' (StartTime) for each activity. Examples 3600 seconds14400 seconds86400 seconds | |||
| Case Duration CaseDuration | The total elapsed time from the start of the first activity to the end of the last activity for a loan. | ||
| Description This calculated metric measures the end-to-end cycle time for each loan application. It represents the total time a case is active in the process. Case Duration is a primary key performance indicator for overall process efficiency. It is used in dashboards to visualize the distribution of cycle times, identify long-running cases, and track performance trends over time. Analyzing the factors that correlate with longer case durations is a key goal of many process mining projects. Why it matters Represents the overall end-to-end cycle time, a critical KPI for measuring overall process health and customer experience. Where to get This is calculated by taking the difference between the maximum and minimum EventTime for each LoanApplicationId. Examples 2592000 seconds1209600 seconds4320000 seconds | |||
| Credit Score CreditScore | The applicant's credit score at the time of the credit check. | ||
| Description This attribute holds the numerical credit score returned from a credit bureau during the 'Credit Check Completed' activity. It is a key factor in the underwriting and decision-making process. In process mining, the credit score can be used to analyze if there is a correlation between the score and process behavior. For instance, do applications with lower credit scores require more manual steps, take longer in underwriting, or have a higher decline rate? This can provide valuable insights into risk-based process variations. Why it matters Allows for analysis of how a key decision-making factor, the credit score, correlates with process paths, durations, and outcomes. Where to get This data is often stored in a dedicated field on a related 'Credit Report' or 'Financials' object linked to the main Loan object. Examples 720650810 | |||
| Decline Reason DeclineReason | The specific reason provided when a loan application is declined. | ||
| Description When a loan's 'Decision Outcome' is 'Declined', this attribute provides further detail on the cause. Reasons could include poor credit score, insufficient income, or incomplete documentation. Analyzing decline reasons is crucial for business improvement. It can reveal trends that point to issues with lending criteria, product-market fit, or problems in the application process itself. These insights can help the business refine its strategies and improve approval rates. Why it matters Provides the root cause for declined applications, enabling analysis to identify trends and improve lending criteria or application processes. Where to get Typically stored in a picklist or text field on the Loan object that becomes mandatory when the loan is moved to a 'Declined' status. Examples Low Credit ScoreHigh Debt-to-Income RatioIncomplete ApplicationCollateral Not Sufficient | |||
| Is Automated IsAutomated | A boolean flag indicating if an activity was performed automatically by the system rather than by a human user. | ||
| Description This flag distinguishes between human-driven tasks and automated system events. For example, a credit check might be an automated activity, while an underwriting decision is typically manual. Identifying automated steps is crucial for automation discovery and analysis. It allows for measuring the impact of automation on cycle times and efficiency, and helps identify manual activities that are prime candidates for future automation initiatives. Why it matters Distinguishes between system and human activities, which is fundamental for measuring the impact of automation and identifying new automation opportunities. Where to get This is typically derived based on the user associated with the event. If the user is a 'System' or 'Integration' user, the flag is set to true. Examples truefalse | |||
| Is Rework IsRework | A calculated flag that identifies activities that are repetitions or loops within a single case. | ||
| Description This boolean attribute is set to true if an activity, like 'Supporting Documents Requested', occurs more than once for the same loan application. It identifies instances of rework, which are often a source of process inefficiency. Analyzing rework is a core process mining use case. The 'IsRework' flag allows for easy filtering and quantification of rework instances. It helps power dashboards like the 'Loan Application Rework Analysis' and is used to calculate KPIs such as the rework rate, highlighting areas where process steps are failing on the first pass. Why it matters Highlights process inefficiencies by flagging repeated work, allowing for targeted analysis to understand and reduce costly loops. Where to get This attribute is calculated during data transformation by using window functions to check if the same activity has already occurred for a given Case ID. Examples truefalse | |||
| SLA State SlaState | A calculated state indicating whether an activity or case met its Service Level Agreement. | ||
| Description This attribute provides the outcome of an SLA check, typically for a specific stage like underwriting. It compares the actual cycle time against the predefined SLA target and assigns a status like 'Met' or 'Breached'. This attribute is essential for performance monitoring against business commitments. It directly supports the 'Underwriting SLA Adherence' dashboard and KPI, providing a clear and immediate signal of compliance. It allows for drilling down into the characteristics of breached applications to understand the root causes of delays. Why it matters Provides a clear, categorical outcome of performance against targets, making it easy to monitor SLA compliance and analyze the causes of breaches. Where to get This is calculated in the data transformation layer by comparing the actual duration of a process segment (e.g., underwriting cycle time) with the 'UnderwritingSlaTarget' attribute. Examples MetBreached | |||
| Underwriting SLA Target UnderwritingSlaTarget | The target duration, in hours or days, for completing the underwriting stage. | ||
| Description This attribute defines the expected Service Level Agreement (SLA) for the underwriting part of the process. It serves as a benchmark against which the actual performance is measured. This target is used to calculate SLA adherence rates. By comparing the actual underwriting cycle time to this target, applications can be flagged as 'Met' or 'Breached'. This is essential for the 'Underwriting SLA Adherence' dashboard and related KPIs. Why it matters Provides the benchmark needed to measure performance against service level agreements, enabling SLA adherence monitoring. Where to get This value may be stored on the Loan object or derived from business rules based on attributes like Loan Product Type or Loan Amount. Examples 48 hours72 hours5 business days | |||
Loan Origination Activities
| Activity | Description | ||
|---|---|---|---|
| Funds Disbursed | This activity marks the successful completion of the loan origination process, where funds are transferred to the applicant. This is typically captured when the loan's stage is moved to 'Booked' or 'Complete'. | ||
| Why it matters This is the primary success end event for the process. Measuring the total time to this activity provides the end-to-end cycle time, a critical KPI for overall process performance. Where to get Inferred from the final stage change on the Loan object to a terminal success state like 'Booked'. The timestamp is sourced from field history tracking. Capture Capture the timestamp when the Loan 'Stage' field (LLC_BI__Stage__c) is updated to 'Booked'. Event type inferred | |||
| Loan Application Created | This activity marks the creation of a new loan application record in the nCino system. It serves as the official start of the loan origination process and is typically captured when a user saves a new Loan record for the first time. | ||
| Why it matters This is the primary start event for the process. Analyzing the time from this activity to others is fundamental for measuring overall cycle times and identifying initial processing delays. Where to get This is an explicit event captured from the creation timestamp of the primary Loan object (Loan__c) in the Salesforce platform, on which nCino is built. Capture Use the 'CreatedDate' field from the Loan__c Salesforce object. Event type explicit | |||
| Loan Decision Rendered | Represents the final, official decision on the loan application, such as 'Approved' or 'Declined'. This event is captured when the loan's status is formally set to reflect this final outcome. | ||
| Why it matters This is a major milestone that separates the evaluation phase from the closing phase. Analyzing the time from underwriting completion to this decision highlights potential delays in committee reviews or final sign-offs. Where to get Inferred from a status or stage field update on the Loan object to a terminal state like 'Approved' or 'Declined'. Field history tracking provides the exact timestamp. Capture Capture the timestamp of the field update setting the loan's final decision status. Event type inferred | |||
| Loan Declined | This activity represents an unsuccessful end to the process, where the loan application is officially declined. This is captured when the loan's stage or status is set to 'Declined'. | ||
| Why it matters This is a critical failure end event. Analyzing paths that lead to this outcome helps identify reasons for rejection and potential areas to improve application quality or lending criteria. Where to get Inferred from the final stage change on the Loan object to 'Declined'. The timestamp is captured from field history tracking on the 'Stage' field. Capture Capture the timestamp when the Loan 'Stage' field (LLC_BI__Stage__c) is updated to 'Declined'. Event type inferred | |||
| Underwriting Commenced | Marks the official start of the underwriting phase, where the loan application is actively being evaluated by an underwriter. This is almost always captured by a change in the loan's primary stage or status field to 'Underwriting'. | ||
| Why it matters This is a critical milestone that begins one of the most resource intensive phases of the process. It is the starting point for measuring underwriting cycle time and SLA adherence. Where to get Inferred from the timestamped change of the Loan's 'Stage' field to 'Underwriting'. This requires Salesforce Field History Tracking to be enabled for the Stage field on the Loan object. Capture Capture the timestamp when the Loan 'Stage' field (LLC_BI__Stage__c) is updated to 'Underwriting'. Event type inferred | |||
| Underwriting Completed | This activity signifies that the underwriter has finished their review and made a recommendation. It is captured when the loan's stage is advanced from 'Underwriting' to a subsequent stage like 'Approved', 'Declined', or 'Pending Decision'. | ||
| Why it matters This milestone marks the end of the underwriting phase. The duration between 'Underwriting Commenced' and this event is a key KPI for measuring underwriting efficiency and identifying bottlenecks. Where to get Inferred from the timestamp when the Loan's 'Stage' field (LLC_BI__Stage__c) is changed from 'Underwriting' to another value. This relies on field history tracking. Capture Capture the timestamp when the Loan 'Stage' field is updated from 'Underwriting' to a post-underwriting status. Event type inferred | |||
| Application Withdrawn | Represents an alternative end to the process where the applicant withdraws the application before a final decision is made. This is captured by setting the loan's stage to 'Withdrawn'. | ||
| Why it matters This end event provides insights into customer drop-off. Analyzing when and why applications are withdrawn can highlight issues with process length, communication, or competitiveness. Where to get Inferred from a final stage change on the Loan object to 'Withdrawn'. Field history tracking on the 'Stage' field provides the event timestamp. Capture Capture the timestamp when the Loan 'Stage' field (LLC_BI__Stage__c) is updated to 'Withdrawn'. Event type inferred | |||
| Credit Check Completed | This activity signifies that a credit check has been run and the results are available within the system. It is often captured when a credit report is attached to the loan record or a specific 'Credit Check' stage is marked as complete. | ||
| Why it matters The credit check is a critical dependency for underwriting. Delays in completing this step can become a significant bottleneck for the entire process. Where to get This could be an explicit event from a credit reporting integration or inferred from a Loan stage update. Check for fields indicating credit pull date or completion status on the Loan or a related object. Capture Use the timestamp of a Loan Stage update to 'Credit Check Complete' or the creation date of a related credit report record. Event type inferred | |||
| Initial Review Performed | Represents the completion of the first formal review of the application and its initial data by a loan officer or processor. This is often captured by a change in the loan's status or stage field, indicating it has moved past the initial data entry phase. | ||
| Why it matters Measuring the time to this activity helps evaluate the initial responsiveness and efficiency of the intake process. It is a key step before more resource intensive activities begin. Where to get Likely inferred from a timestamped change of the Loan's 'Stage' or a custom 'Status' field to a value like 'Initial Review Complete' or 'Pending Documents'. This requires field history tracking to be enabled on the Loan object. Capture Identify the timestamp when the Loan Stage field is updated to signify review completion. Event type inferred | |||
| Loan Agreement Signed | Represents the execution of the final loan agreement by the applicant, a critical step before funding. This is often captured via an e-signature integration or a manual status update once physical documents are returned. | ||
| Why it matters This activity is a crucial prerequisite for funding and a key milestone in the closing process. Delays at this stage can directly impact disbursement timelines. Where to get Can be an explicit event from an e-signature platform API updating a status in nCino, or inferred from a manual status update to 'Documents Signed'. Capture Use the timestamp from an e-signature integration webhook or a manual status update. Event type explicit | |||
| Loan Offer Accepted | Marks the point when the applicant formally accepts the loan offer. This may be captured by a loan officer manually updating a status field or through an e-signature integration that automatically updates the record. | ||
| Why it matters This is a key customer-driven milestone. A long delay here may indicate issues with the offer terms or the acceptance process, providing an opportunity for improvement. Where to get Typically inferred from a manual status update on the Loan object to a stage like 'Offer Accepted' or 'Closing'. An e-signature integration could make this an explicit, automated event. Capture Capture the timestamp of the status or stage field update to 'Accepted'. Event type inferred | |||
| Loan Offer Generated | This activity occurs when a formal loan offer or commitment letter is generated for an approved application. This is often captured by the creation of a specific document or a status update indicating the offer is ready. | ||
| Why it matters The time taken to generate an offer after approval can impact the customer experience. This activity helps monitor the efficiency of the document generation and pre-closing steps. Where to get Can be an explicit event from a document generation engine integrated with nCino, or inferred from a status change to 'Offer Generated' or 'Pending Customer Acceptance'. Capture Use the creation date of the generated loan offer document or a related content version record. Event type explicit | |||
| Risk Assessment Performed | Represents the completion of a formal risk assessment or rating for the loan. This is often a distinct step within the underwriting phase and is captured when the risk rating field is populated or updated. | ||
| Why it matters This activity provides insight into the decision-making process within underwriting. Analyzing the time taken for this step can reveal complexities in risk evaluation. Where to get Can be inferred from the population or last modification date of risk-related fields on the Loan object, such as a 'Risk Grade' or 'Risk Rating' field. Capture Use the timestamp from field history tracking when a 'Risk Rating' field is populated or changed. Event type inferred | |||
| Supporting Documents Received | Marks the point when the requested documents from the applicant have been received and uploaded into the system. This is typically captured when the status of a document placeholder in Document Manager is updated to 'Received' or 'Complete'. | ||
| Why it matters This activity concludes a common waiting period. The time between 'Documents Requested' and 'Documents Received' often highlights external dependencies and communication effectiveness. Where to get Inferred from a status change on the document requirement record within nCino's Document Manager. The timestamp of the status update provides the event time. Capture Identify the timestamp when a document requirement's status is updated to 'Received' or 'Complete'. Event type inferred | |||
| Supporting Documents Requested | This event occurs when a loan officer formally requests additional documentation from the applicant. In nCino, this is often managed through a document management feature, where a checklist item or placeholder is created for a required document. | ||
| Why it matters Tracking this activity is crucial for analyzing rework and delays. Multiple instances for a single loan indicate incomplete initial applications, leading to process loops and extended cycle times. Where to get Can be an explicit event from the creation of a record in nCino's Document Manager related to the loan, or inferred from a status change on the loan itself. Capture Capture the creation date of records in the Document Manager (e.g., docman__Document_Manager_Requirement__c) linked to the loan. Event type explicit | |||
Extraction Guides
Steps
- Prerequisite: Enable Field History Tracking: Before creating any reports, a Salesforce Administrator must enable Field History Tracking on the nCino Loan object (LLC_BI__Loan__c). Track history for key fields that represent process milestones, such as Stage (LLC_BI__Stage__c), Status (LLC_BI__Status__c), Risk Rating ([Your Risk Rating Field]), and any custom fields used to signify events like 'Credit Check Completed'.
- Create a Custom Report Type: Navigate to Setup -> Feature Settings -> Analytics -> Reports & Dashboards -> Report Types. Create a new custom report type. The primary object should be Loans (LLC_BI__Loan__c). The secondary object (B) should be Loan History. This links each loan to its historical field changes, which is essential for building the event log.
- Create the 'Loan History' Report: Navigate to the Reports tab and create a new report using the custom 'Loans with Field History' report type created in the previous step. This report will capture most of the activities based on field changes.
- Add Columns to the Report: Add the following columns to your report. These correspond to the required and recommended attributes: Loan Name (for LoanApplicationId), Field/Event, Old Value, New Value, Edit Date (for EventTime), Edited By (for AssignedUser), Loan Product (for LoanProductType), Amount (for LoanAmount), [Your Channel Field] (for ApplicationChannel), and any other relevant loan attributes.
- Filter the 'Loan History' Report: Set the 'Show Me' filter to 'All loans'. Set the date filter to 'Created Date' on the Loan object for a desired range, for example, the last 6 months. Add a filter on the 'Field/Event' column to only include changes for the specific fields you enabled for tracking (e.g., 'Stage', 'Status').
- Create the 'Loan Creation' Report: Create a second, simpler report directly on the Loan (LLC_BI__Loan__c) object. The purpose of this report is solely to capture the 'Loan Application Created' event. Include columns for Loan Name (LoanApplicationId), Created Date (EventTime), Created By (AssignedUser), and other relevant loan attributes.
- Export the Reports: Run both reports. For smaller data volumes, you can export them directly from the Salesforce UI as CSV files. For larger datasets, use the Salesforce Data Loader. To use the Data Loader, you will need to find the reports in the system and use the Data Loader's export function, which uses API calls to extract the data efficiently.
- Combine and Transform Data: The exported data is not yet an event log. You must combine the two files and transform the data. Use a spreadsheet tool (like Excel with Power Query) or a scripting language (like Python) to perform the following: a. From the 'Loan Creation' report, create rows for the 'Loan Application Created' activity, using the loan's creation date as the EventTime. b. From the 'Loan History' report, create a new 'ActivityName' column. Use conditional logic (e.g., a CASE statement) to map field changes to activity names as described in the query section. c. Combine the results into a single file.
- Finalize Columns: Rename and format the columns to match the ProcessMind schema: LoanApplicationId, ActivityName, EventTime, AssignedUser, etc. Add a 'SourceSystemName' column with a static value like 'nCino' and a 'LastDataUpdateTimestamp' column with the current date and time.
- Upload to ProcessMind: Save the final transformed file as a CSV and upload it to ProcessMind.
Configuration
- Salesforce Permissions: Users extracting data require 'Read' access to the Loan (LLC_BI__Loan__c) object and its history, as well as permissions to run and export reports. Access to the Salesforce Data Loader requires the 'API Enabled' permission.
- Field History Tracking: This is the most critical prerequisite. If it is not enabled for the necessary fields on the Loan object, historical activities cannot be extracted. There is a limit to the number of fields that can be tracked per object.
- Report Filters: Always filter your reports by a specific date range (e.g., loans created in the last 6 months) to keep the data volume manageable. It is also crucial to filter the history report to only include changes to the specific fields (e.g., Stage, Status) that represent your defined process activities.
- nCino Configuration: The values used to identify activities (e.g., Stage named 'Underwriting' or 'Booked') are specific to your organization's nCino configuration. You must adjust the transformation logic to match your system's terminology.
- Data Loader: For extractions of more than a few thousand loans, using the Salesforce Data Loader is strongly recommended to avoid browser timeouts and to handle the data volume efficiently. You will need to install this client application and have API access credentials.
- Related Objects: Some activities, particularly those related to document management or covenants, may be stored in related nCino objects. The primary method described here focuses on the main Loan object. A complete extraction may require creating additional reports on objects like Document Manager Placeholder (LLC_BI__Document_Manager_Placeholder__c) and merging the results.
a Sample Query config
/*
This is a configuration and transformation guide, not a single executable query.
The process involves creating two reports in Salesforce, exporting them, and then transforming the data.
*/
-- Step 1: Configuration for Report 1: 'Loan Creation Report'
-- Report Type: Loans (LLC_BI__Loan__c)
-- Columns:
-- LLC_BI__Loan__c.Name (renamed to LoanApplicationId)
-- LLC_BI__Loan__c.CreatedDate (used for EventTime)
-- LLC_BI__Loan__c.CreatedById (user lookup, for AssignedUser)
-- LLC_BI__Loan__c.LLC_BI__Product_Package__c (for LoanProductType)
-- LLC_BI__Loan__c.LLC_BI__Amount__c (for LoanAmount)
-- LLC_BI__Loan__c.LLC_BI__Stage__a (for initial state)
-- [Other required attributes]
-- Filter:
-- CreatedDate >= [Your Start Date] AND CreatedDate <= [Your End Date]
-- Step 2: Configuration for Report 2: 'Loan History Report'
-- Report Type: Loans with Loan History (Custom Report Type)
-- Columns:
-- LLC_BI__Loan__c.Name (renamed to LoanApplicationId)
-- LoanHistory.Field (maps to 'Field/Event')
-- LoanHistory.OldValue
-- LoanHistory.NewValue
-- LoanHistory.CreatedDate (renamed to EventTime)
-- LoanHistory.CreatedById (user lookup, for AssignedUser)
-- [Other required attributes from the parent Loan object]
-- Filter:
-- Loan:CreatedDate >= [Your Start Date] AND Loan:CreatedDate <= [Your End Date]
-- AND LoanHistory.Field IN ('Stage', 'Status', '[Your Risk Rating Field]', '[Your Credit Check Field]')
-- Step 3: Post-Export Transformation Logic (to be applied with Python, Excel, etc.)
-- This logic transforms the raw report data into a final event log.
SELECT
LoanApplicationId,
'Loan Application Created' AS ActivityName,
EventTime,
AssignedUser,
LoanProductType,
LoanAmount,
-- ... other attributes
FROM [Exported Loan Creation Report]
UNION ALL
SELECT
LoanApplicationId,
CASE
WHEN Field = 'Stage' AND NewValue = 'Initial Review' THEN 'Initial Review Performed'
WHEN Field = 'Stage' AND NewValue = 'Underwriting' THEN 'Underwriting Commenced'
WHEN Field = 'Stage' AND OldValue = 'Underwriting' THEN 'Underwriting Completed'
WHEN Field = 'Stage' AND NewValue = 'Booked' THEN 'Funds Disbursed'
WHEN Field = 'Stage' AND NewValue = 'Declined' THEN 'Loan Declined'
WHEN Field = 'Stage' AND NewValue = 'Withdrawn' THEN 'Application Withdrawn'
WHEN Field = '[Your Risk Rating Field]' AND OldValue IS NULL THEN 'Risk Assessment Performed'
WHEN Field = '[Your Credit Check Field]' AND NewValue = 'Complete' THEN 'Credit Check Completed'
WHEN Field = 'Status' AND NewValue = 'Approved' THEN 'Loan Decision Rendered'
WHEN Field = 'Status' AND NewValue = 'Offer Generated' THEN 'Loan Offer Generated'
WHEN Field = 'Status' AND NewValue = 'Offer Accepted' THEN 'Loan Offer Accepted'
WHEN Field = 'Status' AND NewValue = 'Agreement Signed' THEN 'Loan Agreement Signed'
-- Note: Document activities are difficult to track this way and may require a separate report.
-- These are placeholders assuming a status field is used.
WHEN Field = 'Status' AND NewValue = 'Docs Requested' THEN 'Supporting Documents Requested'
WHEN Field = 'Status' AND NewValue = 'Docs Received' THEN 'Supporting Documents Received'
END AS ActivityName,
EventTime,
AssignedUser,
-- ... other attributes can be joined from the Loan Creation Report by LoanApplicationId
[LoanProductType],
[LoanAmount]
FROM [Exported Loan History Report]
WHERE ActivityName IS NOT NULL; -- Filter out unmapped field changes Steps
- Prerequisites: Ensure you have a Salesforce user account with API access and read permissions for the nCino Loan (LLC_BI__Loan__c), Account, and related History objects. Access to a SOQL execution tool like Salesforce Workbench, Developer Console, or a connected application is required.
- Access SOQL Tool: Log in to your preferred Salesforce data access tool. For Salesforce Workbench, navigate to the site, select your environment, accept the terms, and log in with your Salesforce credentials.
- Select SOQL Query: In Workbench, navigate to the 'Queries' tab and select 'SOQL Query'. For Developer Console, go to the 'Query Editor' tab at the bottom.
- Prepare the Query: Copy the complete SOQL query provided in the 'query' section of this document.
- Configure Placeholders: Before executing, you must modify the placeholders in the query. Replace
'YYYY-MM-DDTHH:MM:SSZ'with your desired start and end dates for the extraction period. Review the stage and status names like'[Underwriting Stage Name]'and update them to match the exact values configured in your nCino environment. - Execute the Query: Paste the configured query into the query editor window.
- Handle Large Datasets: If the query times out or hits Salesforce governor limits, you will need to execute it in smaller batches. Reduce the date range (e.g., one month at a time) and combine the results later.
- Review the Results: Once executed, the tool will display the results in a table format. Verify that the columns
LoanApplicationId,ActivityName, andEventTimeare populated as expected. - Export the Data: Use the tool's export function to save the results. In Workbench, select 'Bulk CSV' as the 'View As' option and click the 'Query' button. This will generate a CSV file.
- Finalize for Upload: Open the exported CSV file. Ensure the column headers match the requirements for your process mining tool. The file is now ready to be uploaded to ProcessMind as an event log.
Configuration
- Salesforce API Access: Your user profile in Salesforce must have the 'API Enabled' permission to use tools like Workbench.
- Object Permissions: You need at least read access to the following Salesforce objects: LLC_BI__Loan__c, LLC_BI__Loan__cHistory, Account, and User.
- Field History Tracking: Field History Tracking must be enabled in Salesforce Setup for the key fields on the Loan object, especially LLC_BI__Stage__c and LLC_BI__Status__c. Without this, most activities will not be captured.
- Date Range: The query includes start and end date placeholders (
'YYYY-MM-DDTHH:MM:SSZ'). For initial analysis, a period of 3 to 6 months is recommended to balance data volume and insight. For very high-volume environments, consider starting with a shorter period. - Stage and Status Names: The query uses placeholders like
'[Underwriting Stage Name]'and'[Declined Stage Name]'. You must consult your nCino system administrator to get the exact API names for the stages and statuses used in your loan origination process and update the query accordingly.
a Sample Query sql
SELECT
Loan.Name AS LoanApplicationId,
'Loan Application Created' AS ActivityName,
Loan.CreatedDate AS EventTime,
Loan.LastModifiedDate AS EventEndTime,
Loan.Owner.Name AS AssignedUser,
Loan.LLC_BI__lookupKey__c AS AssignedDepartment, -- Or another relevant department field
Loan.LLC_BI__Status__c AS DecisionOutcome,
Loan.LLC_BI__Product_Line__c AS LoanProductType,
Loan.LLC_BI__Amount__c AS LoanAmount,
Loan.LLC_BI__Application_Channel__c AS ApplicationChannel, -- Placeholder for custom channel field
'nCino' AS SourceSystemName,
SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__c Loan
WHERE Loan.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND Loan.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Initial Review Performed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Initial Review Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Supporting Documents Requested' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Document Collection Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Supporting Documents Received' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.OldValue = '[Document Collection Stage Name]' AND h.NewValue != '[Document Collection Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Credit Check Completed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Credit Check Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SZZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Underwriting Commenced' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Underwriting Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Risk Assessment Performed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Risk_Rating__c' AND h.NewValue != NULL
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Underwriting Completed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.OldValue = '[Underwriting Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Decision Rendered' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue IN ('[Approved Stage Name]', '[Declined Stage Name]')
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Offer Generated' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Offer Generated Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Offer Accepted' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Offer Accepted Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Agreement Signed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Closing Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Funds Disbursed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Booked Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Declined' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Declined Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Application Withdrawn' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Withdrawn Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ