Data Template: Hire to Retire - Employee Lifecycle
Your Hire to Retire - Employee Lifecycle Data Template
- Recommended attributes to collect for comprehensive analysis
- Key activities and milestones to track throughout the process
- System-specific guidance for data extraction from SAP SuccessFactors Onboarding
Hire to Retire - Employee Lifecycle Attributes
| Name | Description | ||
|---|---|---|---|
Activity ActivityName | The name of the specific event or task that occurred at a point in the employee lifecycle. | ||
Description This attribute captures the discrete steps and milestones within the Hire to Retire process. Each record in the event log corresponds to an activity, such as 'Job Requisition Created', 'Onboarding Initiated', or 'Employee Terminated'. Analyzing the sequence and frequency of these activities is the core of process mining. It helps to automatically discover the actual process flows, identify deviations from the standard procedure, and pinpoint bottlenecks or redundant steps. For example, analysis can reveal if 'Payroll Setup Completed' consistently happens after the target date. Why it matters It defines the steps of the process, forming the backbone of the process map and enabling all flow-based analysis. Where to get Derived from event types, status changes, or task completion records within various SAP SuccessFactors modules (Onboarding, Recruiting, Employee Central). Examples Offer AcceptedOnboarding InitiatedPerformance Review ConductedEmployee Terminated | |||
Employee ID EmployeeId | The unique identifier for an employee's entire lifecycle within the organization. | ||
Description The Employee ID acts as the primary case identifier, linking all events from the initial job application to the final termination. This ID is essential for tracing an individual employee's journey through the various stages of their employment. In process mining analysis, every activity, such as 'Offer Accepted' or 'Performance Review Conducted', is associated with a specific Employee ID. This allows for the end-to-end reconstruction of each employee's lifecycle, enabling detailed analysis of process flows, durations, and variations for individual cases. Why it matters This is the fundamental attribute that connects all related events into a single, cohesive process instance, making end-to-end lifecycle analysis possible. Where to get This is typically the primary employee identifier in the core HR module of SAP SuccessFactors. Examples 100234510098762001567 | |||
Start Time EventTime | The timestamp indicating when an activity or event started. | ||
Description This attribute provides the precise date and time for each activity in the employee lifecycle. It is used to order events chronologically and to calculate the duration between different steps. Accurate timestamps are crucial for performance analysis. They enable the calculation of key metrics like 'Time-to-Hire' (time between 'Job Requisition Created' and 'Offer Accepted') and 'Onboarding Cycle Time'. Analyzing timestamps helps identify delays and measure process efficiency against service level agreements (SLAs). Why it matters It provides the chronological order of events and is essential for all time-based analysis, including cycle time calculation and bottleneck identification. Where to get This information is typically available as a creation date, completion date, or status change timestamp on records within SAP SuccessFactors. Examples 2023-01-15T09:00:00Z2023-03-20T14:35:10Z2023-11-05T11:21:00Z | |||
Last Data Update LastDataUpdate | The timestamp indicating when the data for this event was last refreshed or extracted from the source system. | ||
Description This attribute records the date and time of the last data pull from the source system. It is not the time the event occurred, but rather the time the record was last updated in the process mining dataset. This is a critical metadata attribute for data governance and reliability. It helps users understand the freshness of the data they are analyzing and ensures that analyses are based on up-to-date information. It is also used to manage incremental data loading. Why it matters Ensures transparency about data freshness, allowing analysts to trust the timeliness of their findings and insights. Where to get This timestamp is generated and added to each record during the data ingestion (ETL/ELT) process. Examples 2024-05-21T02:00:00Z2024-05-22T02:00:00Z | |||
Source System SourceSystem | Identifies the originating system where the event data was generated. | ||
Description This attribute specifies the source application from which the data was extracted. For this process view, the value will typically be 'SAP SuccessFactors Onboarding', but it could include other integrated systems as well. In complex IT landscapes, employee lifecycle data may come from multiple systems (e.g., Recruiting, Core HR, Payroll). This attribute helps in tracing data lineage, troubleshooting data quality issues, and understanding the scope of the process analysis. Why it matters It provides crucial context about data origin, which is important for data validation, governance, and understanding process scope. Where to get This is typically a static value added during the data extraction and transformation process to label the dataset's origin. Examples SAP SuccessFactors OnboardingSAP SuccessFactors Employee CentralSAP Fieldglass | |||
Department Department | The organizational department to which the employee is assigned. | ||
Description This attribute contains the name of the business department, such as 'Sales', 'Engineering', or 'Human Resources'. It is a fundamental organizational data point associated with the employee's role. Department is a primary dimension for comparative analysis. It is used to segment KPIs like 'Onboarding Cycle Time' or 'Employee Turnover Rate' to see how processes differ across the organization. This helps pinpoint department-specific issues, such as a slow onboarding process in Engineering or high turnover in Sales. Why it matters It is a critical dimension for segmenting data, allowing for comparisons of process performance and outcomes across different parts of the business. Where to get This data is part of the core employee record in SAP SuccessFactors Employee Central, linked to the employee's position. Examples EngineeringSales and MarketingFinanceCustomer Support | |||
End Time EndTime | The timestamp indicating when a durational activity or event was completed. | ||
Description While StartTime indicates the beginning of an event, EndTime marks its conclusion. This is particularly useful for activities that have a duration, such as 'New Hire Data Collection' or a manager approval step. Having both a start and end time allows for precise calculation of the processing time for individual activities. This helps pinpoint exactly which steps are consuming the most time within a larger cycle, providing a more granular view than case-level cycle time alone. Why it matters It enables the precise calculation of individual activity durations, which is critical for identifying specific process inefficiencies and bottlenecks. Where to get This is often the 'Completed Date' or 'Last Modified Date' timestamp associated with a task or process step in SAP SuccessFactors. Examples 2023-01-15T11:30:00Z2023-03-21T09:00:15Z | |||
Hiring Manager HiringManager | The name of the manager responsible for the new hire or the employee undergoing a lifecycle event. | ||
Description This attribute identifies the manager associated with the employee's case. The hiring manager is a key stakeholder in many lifecycle events, including approvals, onboarding tasks, and performance reviews. Analyzing data by manager is crucial for the 'Manager Approval Bottleneck Analysis' dashboard. It helps identify managers who may have long approval times, indicating a need for training or process support. It also allows for performance comparisons and identification of best practices among managers. Why it matters It identifies a key actor in the process, enabling analysis of manager-specific performance, approval delays, and team-level patterns. Where to get This information is typically stored on the job requisition or the employee's profile within SAP SuccessFactors Employee Central. Examples John SmithMaria GarciaChen Wei | |||
Job Requisition ID JobRequisitionId | The unique identifier for the job requisition that initiated the hiring process. | ||
Description This ID links the employee's lifecycle back to the specific job opening they were hired for. It provides essential context about the role, department, and hiring requirements. In analysis, the Job Requisition ID is used to aggregate and compare hiring processes. For example, the 'Time-to-Hire' KPI can be analyzed by requisition, department, or recruiter to understand where the hiring process is most and least efficient. It helps answer questions like, 'Which types of roles take the longest to fill?'. Why it matters It connects the employee's journey to the initial business need, enabling powerful segmentation and analysis of the recruitment phase. Where to get This identifier is located in the SAP SuccessFactors Recruiting module and is linked to the candidate and subsequent employee profile. Examples REQ-2023-05-101REQ-2024-01-235REQ-2023-11-088 | |||
Job Role JobRole | The specific job title or role of the employee. | ||
Description This attribute specifies the employee's job title, such as 'Software Engineer', 'Account Executive', or 'Financial Analyst'. It provides detailed information about the employee's function within the organization. Analyzing by job role helps to understand how processes vary for different types of employees. For instance, it can be used in the 'Training Assignment Gaps' dashboard to see if certain roles are missing required training, or to analyze if time-to-hire is longer for more senior or technical roles. Why it matters It allows for granular analysis of processes for different employee functions, helping to tailor process improvements to specific roles. Where to get This information is stored on the employee's position or job information record in SAP SuccessFactors Employee Central. Examples Senior Software EngineerProduct ManagerHR Business Partner | |||
Onboarding Cycle Time OnboardingCycleTime | The calculated duration from when a candidate accepts an offer to when their onboarding is complete. | ||
Description This metric measures the total time elapsed between the 'Offer Accepted' activity and a defined onboarding completion event, such as 'Employee Profile Activated' or 'Payroll Setup Completed'. It is not a direct field from the source system but is calculated from event timestamps. This attribute directly corresponds to the 'Onboarding Cycle Time' KPI and is the primary measure for the associated dashboard. Analyzing this duration helps HR departments identify bottlenecks in the onboarding process and track the impact of improvement initiatives aimed at getting new hires productive faster. Why it matters It is a critical KPI for measuring the efficiency of the onboarding process, directly impacting new hire experience and time-to-productivity. Where to get Calculated in the process mining tool by taking the timestamp difference between the 'Offer Accepted' and 'Onboarding Completed' activities. Examples 10 days 4 hours15 days 2 hours7 days 8 hours | |||
Time to Hire TimeToHire | The calculated duration from when a job requisition is created until an offer is accepted. | ||
Description This metric quantifies the efficiency of the recruitment process by measuring the time from the moment a hiring need is formally opened ('Job Requisition Created') to the moment a candidate formally accepts the offer ('Offer Accepted'). As a core KPI, Time to Hire is used to evaluate the speed and performance of the talent acquisition function. A long Time to Hire can result in losing top candidates to competitors and can delay projects. This metric is a key feature of the 'Time-to-Hire Performance' dashboard, where it is often tracked against targets. Why it matters This key recruitment KPI measures how quickly the organization can secure talent, which directly impacts its ability to compete and execute its business strategy. Where to get Calculated in the process mining tool by taking the timestamp difference between the 'Job Requisition Created' and 'Offer Accepted' activities. Examples 35 days52 days28 days | |||
Business Unit BusinessUnit | The larger business unit or division the employee belongs to. | ||
Description This attribute represents a higher level of organizational structure than a department, such as 'Consumer Products' or 'Enterprise Software'. It provides broader business context for the employee's role. Analyzing processes at the business unit level helps senior leadership understand performance across major segments of the company. It can reveal systemic issues within a division or highlight high-performing units whose best practices could be adopted elsewhere. This is valuable for strategic workforce planning and resource allocation. Why it matters It provides a high-level dimension for analysis, allowing for strategic comparisons of process efficiency and outcomes across major company divisions. Where to get This is a standard organizational structure element in SAP SuccessFactors Employee Central, linked to the employee's position. Examples Global TechnologyRetail BankingPharmaceuticals | |||
Candidate ID CandidateId | The unique identifier assigned to a job applicant before they become an employee. | ||
Description This ID tracks an individual through the recruitment phase of the lifecycle, before an Employee ID is assigned. It links all pre-hire activities, such as 'Candidate Applied' and 'Interview Scheduled'. While the Employee ID is the primary case identifier for the end-to-end process, the Candidate ID is essential for detailed analysis of the pre-hire funnel. It allows for the tracking of all applicants for a given requisition, not just the one who was hired, enabling analysis of recruitment conversion rates. Why it matters It enables detailed analysis of the recruitment funnel by tracking all applicants, providing insights into conversion rates and pre-hire process efficiency. Where to get This is a primary identifier in the SAP SuccessFactors Recruiting module. Examples CAND-84392CAND-91034CAND-79831 | |||
Country Country | The country where the employee is located or the position is based. | ||
Description This attribute specifies the country associated with the employee's work location. It is a key piece of geographical and organizational information. Process variations are often tied to geography due to different labor laws, regulations, and business practices. Analyzing data by country helps uncover these differences, such as longer hiring cycles or different compliance steps in certain regions. It is essential for ensuring global process standardization while accommodating local requirements. Why it matters It enables geographical segmentation of the process, which is crucial for understanding regional variations in performance, compliance, and cost. Where to get This is part of the employee's location or job information in SAP SuccessFactors Employee Central. Examples USAGermanyIndiaBrazil | |||
Employment Status EmploymentStatus | The current employment status of the employee, such as active, terminated, or on leave. | ||
Description This attribute indicates the employee's current standing with the company. It changes at key moments in the lifecycle, particularly at the beginning ('Active') and end ('Terminated'). This is a critical dimension for analyzing the 'Employee Lifecycle Throughput' dashboard. By filtering on status, analysts can track the flow of active employees, monitor the volume of terminations over time, and understand how process variants might differ for employees on leave. It provides a high-level outcome for each case. Why it matters It provides a clear outcome for each employee case and is essential for cohort analysis, turnover analysis, and understanding process throughput. Where to get This is a standard field on the employee's job information record in SAP SuccessFactors Employee Central. Examples ActiveTerminatedPaid LeaveUnpaid Leave | |||
Is Rework IsRework | A boolean flag indicating if an activity is being performed for a second or subsequent time within the same case. | ||
Description This calculated attribute flags activities that are repeated within an employee's lifecycle. For example, if a 'Compliance Form Signed' activity occurs twice because the first submission was incorrect, the second occurrence would be flagged as rework. This attribute is essential for the 'Activity Rework and Redundancy' dashboard. It helps quantify process waste and identify areas where tasks are not being completed correctly the first time. High levels of rework can indicate issues with training, system usability, or process clarity. Why it matters It quantifies inefficiency by identifying repeated work, highlighting opportunities to improve process quality and reduce wasted effort. Where to get Calculated by the process mining tool by analyzing the sequence of activities for each case and flagging repeated activities. Examples truefalse | |||
Performed By User PerformedByUser | The name or ID of the user who performed the activity. | ||
Description This attribute identifies the individual, such as an HR specialist, recruiter, or manager, who executed a specific task or event in the process. It tracks human involvement in the workflow. Analyzing who performs activities is key to understanding resource allocation, workload distribution, and performance. It can help identify top-performing recruiters, managers who are slow to approve, or HR team members who handle the most tasks. This data is also used to differentiate between tasks performed by employees and those that are automated. Why it matters It attributes process activities to specific individuals, enabling workload analysis, resource performance management, and identification of training needs. Where to get This information is often found in audit logs or 'last modified by' fields associated with tasks and records in SAP SuccessFactors. Examples asmithjdoebchen | |||
Processing Time ProcessingTime | The calculated duration of a single activity, measured from its start to its end time. | ||
Description This metric represents the active working time for a specific task. It is calculated as the difference between an activity's EndTime and its StartTime. Processing Time provides a more granular view of process performance than overall cycle time. For example, it can distinguish between the time spent actively working on payroll setup versus the time spent waiting for information. This helps to identify which specific tasks are inefficient, as opposed to just identifying long waiting times between tasks. Why it matters It measures the actual work duration of an activity, helping to differentiate between active work time and idle waiting time for more precise bottleneck analysis. Where to get Calculated in the process mining tool by subtracting the StartTime from the EndTime for each activity. Examples 2 hours 15 minutes45 minutes1 day 3 hours | |||
Recruitment Source RecruitmentSource | The channel through which the candidate was sourced, such as a job board, employee referral, or direct application. | ||
Description This attribute tracks the origin of the job application. It provides insight into which hiring channels are most effective for finding and securing talent. This data is valuable for the 'Payroll Setup Completion & Accuracy' dashboard, as it can help determine if candidates from certain sources experience more issues. More broadly, it is used to analyze the quality and speed of hires from different channels. For example, analysis might show that employee referrals have the shortest time-to-hire and highest retention rates. Why it matters It helps measure the effectiveness of different hiring channels, enabling optimization of recruiting strategies and budgets. Where to get This information is captured in the SAP SuccessFactors Recruiting module when a candidate applies. Examples LinkedInEmployee ReferralCompany WebsiteIndeed | |||
Termination Reason TerminationReason | The reason provided for the employee's departure from the company. | ||
Description This attribute captures the specific reason for an employee's termination, which can be either voluntary (e.g., 'Resignation - Better Opportunity') or involuntary (e.g., 'Involuntary - Performance'). This is a critical attribute for the 'High Turnover Pattern Analysis' dashboard. By correlating termination reasons with specific process paths, companies can uncover root causes of attrition. For example, analysis might reveal that employees who experience a very long onboarding process are more likely to resign within the first year. Why it matters It provides crucial context for why employees leave, enabling root cause analysis of turnover and the development of targeted retention strategies. Where to get This information is recorded in SAP SuccessFactors Employee Central during the offboarding or termination process. Examples Voluntary - ResignationInvoluntary - PerformanceRetirementInvoluntary - Restructuring | |||
Hire to Retire - Employee Lifecycle Activities
| Activity | Description | ||
|---|---|---|---|
Employee Profile Activated | The new hire's data is officially transferred from Onboarding to Employee Central, and their employee profile becomes active on their start date. This event is captured when the employee record is created and made active in the core HRIS. | ||
Why it matters This signifies the employee's official entry into the company's records. It is the final step of the hiring process and the start of their active employment lifecycle. Where to get This event occurs in SAP SuccessFactors Employee Central. It is captured from the hire date or creation date of the user's employment record. Capture The hire date timestamp associated with the employee's main employment record in Employee Central. Event type explicit | |||
Employee Terminated | The employee's record becomes officially inactive in the system on their last day of employment. This represents the final conclusion of the employee lifecycle. | ||
Why it matters This is the definitive end event for the Hire to Retire process instance. The time between 'Termination Initiated' and this event defines the total offboarding duration. Where to get Recorded in SAP SuccessFactors Employee Central. The event is the effective date of the termination action in the employee's 'Job Information' history. Capture The effective-date of the termination record in Employee Central. Event type explicit | |||
Job Requisition Created | Marks the official start of the hiring process when a new position is approved and opened for applications. This event is typically captured in the SAP SuccessFactors Recruiting module when a new requisition form is saved and posted. | ||
Why it matters This is the primary start point for measuring the 'Time-to-Hire' KPI. Analyzing the time from this event helps identify delays in the initial stages of talent acquisition. Where to get Recorded in the SAP SuccessFactors Recruiting module. The event corresponds to the creation date and timestamp of the job requisition entity. Capture Captured from the creation timestamp of the job requisition record in the Recruiting module. Event type explicit | |||
Offer Accepted | Represents the moment a candidate formally accepts the job offer, triggering the transition from recruitment to onboarding. This is typically inferred from a status change on the candidate's application within the Recruiting module. | ||
Why it matters This is a critical milestone that marks the end of 'Time-to-Hire' and the beginning of the 'Onboarding Cycle Time'. Delays before this point affect recruitment, while delays after affect the new hire experience. Where to get Inferred from a status change in the candidate's application pipeline within the SAP SuccessFactors Recruiting module, for example, moving to an 'Offer Accepted' or similar status. Capture Based on the timestamp when the application status is updated to 'Offer Accepted' or an equivalent status. Event type inferred | |||
Onboarding Initiated | The new hire's record is created in the Onboarding module, and their set of onboarding tasks is formally kicked off. This is an explicit event logged when the onboarding process is triggered for the new employee. | ||
Why it matters This is the official start of the onboarding journey. It provides a clear baseline for measuring onboarding efficiency and new hire engagement. Where to get SAP SuccessFactors Onboarding 2.0 creates a process instance for the new hire with a specific start date and timestamp when they are passed from the Recruiting module. Capture The creation timestamp of the new hire's onboarding process record. Event type explicit | |||
Ready To Hire Status Set | All pre-day-one onboarding activities are complete, and the system flags the candidate as ready to be hired in the core HR system. This is typically inferred from the overall status of the onboarding process. | ||
Why it matters This milestone confirms that all prerequisites are met for the employee to officially start. It is a key checkpoint before activating the employee profile and payroll. Where to get Inferred from the status of the onboarding process instance in the SAP SuccessFactors Onboarding module when it reaches a final step like 'Ready to Hire'. Capture The timestamp when the onboarding process status changes to 'Completed' or 'Ready to Hire'. Event type inferred | |||
Termination Initiated | The process of an employee's departure begins, initiated by a manager or HR. This is logged in Employee Central when a termination action is entered into the system, often with a future effective date. | ||
Why it matters This marks the start of the offboarding process. Analyzing activities following this event is crucial for understanding offboarding efficiency and compliance. Where to get This is an explicit action recorded in SAP SuccessFactors Employee Central. The event is captured from the creation date of the termination record for the employee. Capture Creation timestamp of the termination record in the employee's job history. Event type explicit | |||
Candidate Applied | A candidate officially submits their application for the job requisition. This event is captured when a new candidate application is successfully received against a specific requisition in the system. | ||
Why it matters Tracking application volume and the time elapsed since requisition creation helps evaluate the effectiveness of sourcing channels and recruitment marketing. Where to get Logged in the SAP SuccessFactors Recruiting module. Each application record has a creation date which serves as the event timestamp. Capture The submission timestamp on the candidate's application record. Event type explicit | |||
Compliance Form Signed | The new hire completes and electronically signs mandatory compliance documents, such as I-9, tax forms, or policy acknowledgements. This event is logged when a specific compliance document task is completed. | ||
Why it matters Ensuring compliance is a critical, non-negotiable part of onboarding. Tracking this activity helps monitor the HR Compliance Conformance Rate and avoid legal risks. Where to get Logged within the SAP SuccessFactors Onboarding module's compliance forms section. Each form completion carries a timestamp that can be used for the event log. Capture The completion timestamp of a specific compliance form task, such as 'I-9 Section 1' or 'W-4'. Event type explicit | |||
Manager Tasks Completed | The hiring manager completes their assigned onboarding responsibilities, such as confirming equipment needs or setting first-week goals. This is captured when the manager's checklist or specific tasks are marked complete. | ||
Why it matters Manager involvement is key to a successful onboarding experience. Analyzing the lead time for these tasks helps identify manager-related bottlenecks. Where to get Tracked in the SAP SuccessFactors Onboarding module. The completion timestamp of tasks assigned to the hiring manager. Capture Completion timestamp of the manager-assigned tasks within the Onboarding process. Event type explicit | |||
New Hire Data Collection Completed | The new hire completes the initial set of data collection tasks, such as personal information, bank details, and emergency contacts. This is captured when specific tasks or a group of tasks within the onboarding checklist are marked as complete. | ||
Why it matters Timely data collection is crucial for subsequent steps like payroll setup and IT provisioning. Delays here create downstream bottlenecks and can negatively impact the new hire's first day experience. Where to get Tracked within the SAP SuccessFactors Onboarding module. The completion timestamp of the relevant data collection steps or forms serves as the event time. Capture Completion timestamp of the 'Personal Data Collection' or similar standard step in the Onboarding process. Event type explicit | |||
Offboarding Tasks Completed | All required offboarding tasks, such as asset return, knowledge transfer, and final payroll instructions, are completed. This is captured when the offboarding process checklist reaches its final state. | ||
Why it matters Ensuring all offboarding steps are completed mitigates security risks and ensures legal compliance. This activity is key to measuring the Offboarding Cycle Time. Where to get Tracked within the SAP SuccessFactors Offboarding module. It's inferred from the completion of the final task in the offboarding checklist for the employee. Capture The timestamp when the offboarding process status changes to 'Completed'. Event type inferred | |||
Payroll Setup Completed | The new employee's information is successfully entered and confirmed in the payroll system. This event may be captured from a specific task completion in SuccessFactors or inferred from data replication logs to a payroll system. | ||
Why it matters Accurate and timely payroll setup is critical for a positive new hire experience. Tracking this helps measure the Payroll Setup Error Rate and completion timeliness. Where to get This can be difficult to track directly. It may be a manual task in the onboarding checklist or inferred from data integration logs between Employee Central and the payroll system. Capture Inferred from the completion of a 'Notify Payroll' task or a successful data sync log entry. Event type inferred | |||
Performance Review Conducted | A formal performance review cycle is completed for an employee. This is captured when a performance review form is finalized and moved to a 'Completed' state in the Performance & Goals module. | ||
Why it matters This activity is essential for analyzing the Performance Review Cadence Adherence KPI. It helps ensure that employee development and feedback are occurring consistently across the organization. Where to get Recorded in the SAP SuccessFactors Performance & Goals module. The event is the completion timestamp of the performance review form. Capture Completion timestamp of the performance review form for the employee. Event type explicit | |||
Promotion Approved | A manager's request to promote an employee is officially approved in the system. This is an explicit event captured when a 'Job Information' change transaction with a promotion event reason is saved. | ||
Why it matters Tracking promotions is key to understanding internal mobility patterns and career progression. The time taken for approval can highlight administrative bottlenecks. Where to get Logged in SAP SuccessFactors Employee Central. This is a 'Job Information' record change with an event reason of 'Promotion' and has an effective date. Capture Creation timestamp of a 'Job Information' change with a 'Promotion' event reason. Event type explicit | |||
Extraction Guides
Steps
- Prerequisites: Ensure you have administrative access to SAP SuccessFactors with Role-Based Permissions (RBP) for 'Integration Center' and read access to the required OData APIs (e.g.,
JobRequisition,JobApplication,ONB2Process,EmpJob). You will also need SFTP server credentials where the output files will be placed. - Strategy: The Hire to Retire process spans multiple SuccessFactors modules. You will create several separate integrations, one for each major data source (e.g., Recruiting, Onboarding, Employee Central). The output CSV files from these integrations will then be combined externally into a single event log for ProcessMind.
- Navigate to Integration Center: From the Admin Center, use the Tool Search to find and navigate to 'Integration Center'.
- Create Recruiting Events Integration: Click 'My Integrations', then 'Create' and select 'Scheduled Simple File Output Integration'.
- Search for and select the
JobApplicationentity as the starting point. Provide a name likeProcessMind_Recruiting_Events. - In the 'Configure Fields' tab, select the necessary fields. Use the 'Add' button to create calculated fields to map statuses to
ActivityNameand select the appropriate date fields forEventTime. - Create separate calculated columns for each activity derived from this entity, like 'Candidate Applied' and 'Offer Accepted'. Use conditional logic (e.g., if status is 'Hired', then event is 'Offer Accepted').
- Also, create a separate integration for the
JobRequisitionentity to capture the 'Job Requisition Created' event.
- Search for and select the
- Create Onboarding Events Integration: Create another integration using the
ONB2Processentity. This will be the source for activities like 'Onboarding Initiated', 'New Hire Data Collection Completed', 'Manager Tasks Completed', and 'Ready To Hire Status Set'.- The
ONB2Processentity contains various status fields and dates that correspond to these activities. You will need to create multiple calculated fields to check the process status or task statuses and output the corresponding activity name and timestamp. - For specific events like 'Compliance Form Signed', you may need a separate integration based on entities like
ONB2DataCollectionUserConfigor related compliance form entities.
- The
- Create Employee Central (EC) Events Integration: Create a third major integration using the
EmpJob(Job Information) entity. This is a time-sliced entity and is the source for most employee lifecycle events.- Activities like 'Employee Profile Activated', 'Promotion Approved', 'Termination Initiated', and 'Employee Terminated' are derived from records in
EmpJob. - You will filter on the
eventReasonfield to identify the specific activities (e.g., 'HIRE', 'PROMO', 'TERML', 'TERM'). - Use the
startDateorcreatedDateof theEmpJobrecord as theEventTime.
- Activities like 'Employee Profile Activated', 'Promotion Approved', 'Termination Initiated', and 'Employee Terminated' are derived from records in
- Configure Filtering: In the 'Filter' tab for each integration, add a filter based on the
lastModifiedDateTimefield. Set the operator to 'Greater Than' and the value to 'Last Run Time'. This ensures that each run only extracts new or updated records, which is critical for performance. - Configure Destination and Scheduling: In the 'Destination Settings' tab, enter the details for your SFTP server. In the 'Scheduling' tab, set the integration to run on a recurring basis, such as daily.
- Review and Run: Save and run the integrations. The first run will perform a full load based on your date filters, and subsequent runs will be deltas.
- Combine and Transform Data: Download the CSV files from the SFTP server. Use an external script (e.g., Python) or an ETL tool to combine the files into a single event log. This script must:
- Union all files together.
- Handle linking pre-hire events (from Recruiting) to the post-hire
EmployeeId. - Calculate complex attributes like
TimeToHireandOnboardingCycleTimeby processing related events for the same employee or requisition.
- Format for Upload: Ensure the final combined file is a CSV with the required columns (
EmployeeId,ActivityName,EventTime,SourceSystem,LastDataUpdate, etc.) and format before uploading to ProcessMind.
Configuration
- Integration Type: Scheduled Simple File Output Integration. This is the standard choice for creating scheduled file-based exports to an SFTP server.
- Source: SuccessFactors OData V2 API. This is the standard API used by the Integration Center for data retrieval.
- Key Source Entities: You will need to configure integrations for several entities, including
JobRequisition,JobApplication,ONB2Process,EmpJob(Job Information),PMForm(Performance Management Form), and potentiallyONB2DataCollectionUserConfigfor compliance forms. - Destination: An SFTP server is required to receive the flat-file exports. Configure the host address, port, and credentials in the 'Destination Settings' tab.
- File Format: CSV is the recommended output format. Ensure UTF-8 encoding is selected to support special characters.
- Filtering: The most important filter is on the
lastModifiedDateTimefield using the 'Last Run Time' value. This enables delta extraction, significantly improving performance and reducing file size on subsequent runs. You should also consider filtering byCompany/Legal Entityif you are only extracting for a specific part of the business. - Scheduling: A daily scheduled run is recommended to ensure data freshness without putting excessive load on the source system.
- Prerequisites: The user running the integration needs full permissions for the Integration Center tool itself and OData API read access for all entities and their navigation properties being queried. These permissions are configured in 'Manage Permission Roles' in SuccessFactors.
a Sample Query config
/*
Integration Center does not use a single script. Instead, you configure multiple integrations through a graphical interface.
The following describes the configuration for each required integration to produce the final event log.
*/
// ======== Integration 1: Job Requisition Created ========
Integration.Name: "ProcessMind_JobRequisition_Created"
Starting.Entity: JobRequisition
Output.Columns:
- ActivityName = "Job Requisition Created" (Calculated, Fixed String)
- EventTime = jobReqGUId.createdDateTime (Source Field)
- JobRequisitionId = jobReqId (Source Field)
- EmployeeId = NULL (Calculated, Empty String)
- HiringManager = hiringManager.usersSysId (Navigated Field)
- Department = department.name (Navigated Field)
- JobRole = jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 2: Recruiting Application Events ========
Integration.Name: "ProcessMind_Recruiting_Application_Events"
Starting.Entity: JobApplication
Output.Columns:
- ActivityName = IF(jobApplication.status.statusName CONTAINS 'Applied', 'Candidate Applied', IF(jobApplication.status.statusName CONTAINS 'Offer Accepted', 'Offer Accepted', NULL)) (Calculated Field)
- EventTime = IF(ActivityName == 'Candidate Applied', jobApplication.createdDateTime, jobApplication.offerResponseDate) (Calculated Field)
- JobRequisitionId = jobApplication.jobReqId (Source Field)
- EmployeeId = jobApplication.candidate.usersSysId (Navigated Field, Note: this is the Candidate User ID, needs mapping to Employee ID post-hire)
- HiringManager = jobApplication.jobRequisition.hiringManager.usersSysId (Navigated Field)
- Department = jobApplication.jobRequisition.department.name (Navigated Field)
- JobRole = jobApplication.jobRequisition.jobTitle (Navigated Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- ActivityName != NULL
// ======== Integration 3: Onboarding & Offboarding Process Events ========
Integration.Name: "ProcessMind_Onboarding_Events"
Starting.Entity: ONB2Process
Output.Columns:
// Multiple rows can be generated from one ONB2Process record. This logic is best handled in the post-processing script.
// This example flattens it for simplicity, assuming one activity per record based on current status.
- ActivityName = CASE(ONB2Process.processStatus.code, 'READY_TO_HIRE', 'Ready To Hire Status Set', 'COMPLETED', 'Onboarding Initiated', 'ONB_TASKS_COMPLETED', 'New Hire Data Collection Completed', 'MNGR_TASKS_COMPLETED', 'Manager Tasks Completed', 'OFF_COMPLETED', 'Offboarding Tasks Completed') (Calculated Field)
- EventTime = ONB2Process.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2Process.personId (Source Field)
- JobRequisitionId = ONB2Process.requisitionId (Source Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 4: Employee Central Lifecycle Events ========
Integration.Name: "ProcessMind_EmployeeCentral_Events"
Starting.Entity: EmpJob
Output.Columns:
- ActivityName = CASE(EmpJob.eventReason, 'HIRE', 'Employee Profile Activated', 'PROMO', 'Promotion Approved', 'TERML', 'Termination Initiated', 'TERM', 'Employee Terminated', 'PAYSETUP', 'Payroll Setup Completed') (Calculated Field)
- EventTime = EmpJob.startDate (Source Field for most events) OR EmpJob.createdDate (For 'Termination Initiated')
- EmployeeId = EmpJob.userId (Source Field)
- EndTime = IF(ActivityName == 'Employee Terminated', EmpJob.endDate, NULL) (Calculated Field)
- JobRequisitionId = [Configure if custom field exists]
- HiringManager = EmpJob.managerId (Source Field)
- Department = EmpJob.department (Source Field)
- JobRole = EmpJob.jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Employee Central"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDate > [Last Run Time]
- eventReason IN ('HIRE', 'PROMO', 'TERML', 'TERM', 'PAYSETUP')
// ======== Integration 5: Performance Management Events ========
Integration.Name: "ProcessMind_Performance_Events"
Starting.Entity: FormHeader
Output.Columns:
- ActivityName = "Performance Review Conducted" (Calculated, Fixed String)
- EventTime = FormHeader.formLastModifiedDate (Source Field)
- EmployeeId = FormHeader.formSubject.userId (Navigated Field)
- HiringManager = [Configure based on your system, often a form participant]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Performance & Goals"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModified > [Last Run Time]
- formTemplateType = 'Review'
- formStatus = 'Completed' // Use the numeric value for completed status
// ======== Integration 6: Compliance Form Events ========
Integration.Name: "ProcessMind_Compliance_Events"
Starting.Entity: ONB2DataCollectionUserConfig // Or specific compliance entity
Output.Columns:
- ActivityName = "Compliance Form Signed" (Calculated, Fixed String)
- EventTime = ONB2DataCollectionUserConfig.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2DataCollectionUserConfig.process.personId (Navigated Field)
- JobRequisitionId = ONB2DataCollectionUserConfig.process.requisitionId (Navigated Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- status == 'COMPLETED'Steps
- Prerequisites: Ensure you have administrative access to SAP SuccessFactors with Role-Based Permissions (RBP) for 'Integration Center' and read access to the required OData APIs (e.g.,
JobRequisition,JobApplication,ONB2Process,EmpJob). You will also need SFTP server credentials where the output files will be placed. - Strategy: The Hire to Retire process spans multiple SuccessFactors modules. You will create several separate integrations, one for each major data source (e.g., Recruiting, Onboarding, Employee Central). The output CSV files from these integrations will then be combined externally into a single event log for ProcessMind.
- Navigate to Integration Center: From the Admin Center, use the Tool Search to find and navigate to 'Integration Center'.
- Create Recruiting Events Integration: Click 'My Integrations', then 'Create' and select 'Scheduled Simple File Output Integration'.
- Search for and select the
JobApplicationentity as the starting point. Provide a name likeProcessMind_Recruiting_Events. - In the 'Configure Fields' tab, select the necessary fields. Use the 'Add' button to create calculated fields to map statuses to
ActivityNameand select the appropriate date fields forEventTime. - Create separate calculated columns for each activity derived from this entity, like 'Candidate Applied' and 'Offer Accepted'. Use conditional logic (e.g., if status is 'Hired', then event is 'Offer Accepted').
- Also, create a separate integration for the
JobRequisitionentity to capture the 'Job Requisition Created' event.
- Search for and select the
- Create Onboarding Events Integration: Create another integration using the
ONB2Processentity. This will be the source for activities like 'Onboarding Initiated', 'New Hire Data Collection Completed', 'Manager Tasks Completed', and 'Ready To Hire Status Set'.- The
ONB2Processentity contains various status fields and dates that correspond to these activities. You will need to create multiple calculated fields to check the process status or task statuses and output the corresponding activity name and timestamp. - For specific events like 'Compliance Form Signed', you may need a separate integration based on entities like
ONB2DataCollectionUserConfigor related compliance form entities.
- The
- Create Employee Central (EC) Events Integration: Create a third major integration using the
EmpJob(Job Information) entity. This is a time-sliced entity and is the source for most employee lifecycle events.- Activities like 'Employee Profile Activated', 'Promotion Approved', 'Termination Initiated', and 'Employee Terminated' are derived from records in
EmpJob. - You will filter on the
eventReasonfield to identify the specific activities (e.g., 'HIRE', 'PROMO', 'TERML', 'TERM'). - Use the
startDateorcreatedDateof theEmpJobrecord as theEventTime.
- Activities like 'Employee Profile Activated', 'Promotion Approved', 'Termination Initiated', and 'Employee Terminated' are derived from records in
- Configure Filtering: In the 'Filter' tab for each integration, add a filter based on the
lastModifiedDateTimefield. Set the operator to 'Greater Than' and the value to 'Last Run Time'. This ensures that each run only extracts new or updated records, which is critical for performance. - Configure Destination and Scheduling: In the 'Destination Settings' tab, enter the details for your SFTP server. In the 'Scheduling' tab, set the integration to run on a recurring basis, such as daily.
- Review and Run: Save and run the integrations. The first run will perform a full load based on your date filters, and subsequent runs will be deltas.
- Combine and Transform Data: Download the CSV files from the SFTP server. Use an external script (e.g., Python) or an ETL tool to combine the files into a single event log. This script must:
- Union all files together.
- Handle linking pre-hire events (from Recruiting) to the post-hire
EmployeeId. - Calculate complex attributes like
TimeToHireandOnboardingCycleTimeby processing related events for the same employee or requisition.
- Format for Upload: Ensure the final combined file is a CSV with the required columns (
EmployeeId,ActivityName,EventTime,SourceSystem,LastDataUpdate, etc.) and format before uploading to ProcessMind.
Configuration
- Integration Type: Scheduled Simple File Output Integration. This is the standard choice for creating scheduled file-based exports to an SFTP server.
- Source: SuccessFactors OData V2 API. This is the standard API used by the Integration Center for data retrieval.
- Key Source Entities: You will need to configure integrations for several entities, including
JobRequisition,JobApplication,ONB2Process,EmpJob(Job Information),PMForm(Performance Management Form), and potentiallyONB2DataCollectionUserConfigfor compliance forms. - Destination: An SFTP server is required to receive the flat-file exports. Configure the host address, port, and credentials in the 'Destination Settings' tab.
- File Format: CSV is the recommended output format. Ensure UTF-8 encoding is selected to support special characters.
- Filtering: The most important filter is on the
lastModifiedDateTimefield using the 'Last Run Time' value. This enables delta extraction, significantly improving performance and reducing file size on subsequent runs. You should also consider filtering byCompany/Legal Entityif you are only extracting for a specific part of the business. - Scheduling: A daily scheduled run is recommended to ensure data freshness without putting excessive load on the source system.
- Prerequisites: The user running the integration needs full permissions for the Integration Center tool itself and OData API read access for all entities and their navigation properties being queried. These permissions are configured in 'Manage Permission Roles' in SuccessFactors.
a Sample Query config
/*
Integration Center does not use a single script. Instead, you configure multiple integrations through a graphical interface.
The following describes the configuration for each required integration to produce the final event log.
*/
// ======== Integration 1: Job Requisition Created ========
Integration.Name: "ProcessMind_JobRequisition_Created"
Starting.Entity: JobRequisition
Output.Columns:
- ActivityName = "Job Requisition Created" (Calculated, Fixed String)
- EventTime = jobReqGUId.createdDateTime (Source Field)
- JobRequisitionId = jobReqId (Source Field)
- EmployeeId = NULL (Calculated, Empty String)
- HiringManager = hiringManager.usersSysId (Navigated Field)
- Department = department.name (Navigated Field)
- JobRole = jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 2: Recruiting Application Events ========
Integration.Name: "ProcessMind_Recruiting_Application_Events"
Starting.Entity: JobApplication
Output.Columns:
- ActivityName = IF(jobApplication.status.statusName CONTAINS 'Applied', 'Candidate Applied', IF(jobApplication.status.statusName CONTAINS 'Offer Accepted', 'Offer Accepted', NULL)) (Calculated Field)
- EventTime = IF(ActivityName == 'Candidate Applied', jobApplication.createdDateTime, jobApplication.offerResponseDate) (Calculated Field)
- JobRequisitionId = jobApplication.jobReqId (Source Field)
- EmployeeId = jobApplication.candidate.usersSysId (Navigated Field, Note: this is the Candidate User ID, needs mapping to Employee ID post-hire)
- HiringManager = jobApplication.jobRequisition.hiringManager.usersSysId (Navigated Field)
- Department = jobApplication.jobRequisition.department.name (Navigated Field)
- JobRole = jobApplication.jobRequisition.jobTitle (Navigated Field)
- SourceSystem = "SAP SuccessFactors Recruiting"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- ActivityName != NULL
// ======== Integration 3: Onboarding & Offboarding Process Events ========
Integration.Name: "ProcessMind_Onboarding_Events"
Starting.Entity: ONB2Process
Output.Columns:
// Multiple rows can be generated from one ONB2Process record. This logic is best handled in the post-processing script.
// This example flattens it for simplicity, assuming one activity per record based on current status.
- ActivityName = CASE(ONB2Process.processStatus.code, 'READY_TO_HIRE', 'Ready To Hire Status Set', 'COMPLETED', 'Onboarding Initiated', 'ONB_TASKS_COMPLETED', 'New Hire Data Collection Completed', 'MNGR_TASKS_COMPLETED', 'Manager Tasks Completed', 'OFF_COMPLETED', 'Offboarding Tasks Completed') (Calculated Field)
- EventTime = ONB2Process.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2Process.personId (Source Field)
- JobRequisitionId = ONB2Process.requisitionId (Source Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
// ======== Integration 4: Employee Central Lifecycle Events ========
Integration.Name: "ProcessMind_EmployeeCentral_Events"
Starting.Entity: EmpJob
Output.Columns:
- ActivityName = CASE(EmpJob.eventReason, 'HIRE', 'Employee Profile Activated', 'PROMO', 'Promotion Approved', 'TERML', 'Termination Initiated', 'TERM', 'Employee Terminated', 'PAYSETUP', 'Payroll Setup Completed') (Calculated Field)
- EventTime = EmpJob.startDate (Source Field for most events) OR EmpJob.createdDate (For 'Termination Initiated')
- EmployeeId = EmpJob.userId (Source Field)
- EndTime = IF(ActivityName == 'Employee Terminated', EmpJob.endDate, NULL) (Calculated Field)
- JobRequisitionId = [Configure if custom field exists]
- HiringManager = EmpJob.managerId (Source Field)
- Department = EmpJob.department (Source Field)
- JobRole = EmpJob.jobTitle (Source Field)
- SourceSystem = "SAP SuccessFactors Employee Central"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDate > [Last Run Time]
- eventReason IN ('HIRE', 'PROMO', 'TERML', 'TERM', 'PAYSETUP')
// ======== Integration 5: Performance Management Events ========
Integration.Name: "ProcessMind_Performance_Events"
Starting.Entity: FormHeader
Output.Columns:
- ActivityName = "Performance Review Conducted" (Calculated, Fixed String)
- EventTime = FormHeader.formLastModifiedDate (Source Field)
- EmployeeId = FormHeader.formSubject.userId (Navigated Field)
- HiringManager = [Configure based on your system, often a form participant]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Performance & Goals"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModified > [Last Run Time]
- formTemplateType = 'Review'
- formStatus = 'Completed' // Use the numeric value for completed status
// ======== Integration 6: Compliance Form Events ========
Integration.Name: "ProcessMind_Compliance_Events"
Starting.Entity: ONB2DataCollectionUserConfig // Or specific compliance entity
Output.Columns:
- ActivityName = "Compliance Form Signed" (Calculated, Fixed String)
- EventTime = ONB2DataCollectionUserConfig.lastModifiedDateTime (Source Field)
- EmployeeId = ONB2DataCollectionUserConfig.process.personId (Navigated Field)
- JobRequisitionId = ONB2DataCollectionUserConfig.process.requisitionId (Navigated Field)
- HiringManager = [Configure based on your system]
- Department = [Configure based on your system]
- JobRole = [Configure based on your system]
- SourceSystem = "SAP SuccessFactors Onboarding"
- LastDataUpdate = NOW() (Calculated, Current Timestamp)
Filters:
- lastModifiedDateTime > [Last Run Time]
- status == 'COMPLETED'