Implementation Overview
Implementation Type: Kombo-based IntegrationNote Format: Plain Text
Status: Production Ready SuccessFactors is one of the most complete and mature integrations, with comprehensive feature coverage through Kombo’s unified API.
Configuration
Feature Summary
Nearly complete implementation with all core features supported and tested.Streaming Operations (All Supported)
Streaming Operations (All Supported)
- Stream Jobs (Inherited)
- Stream Applications (Inherited)
- Stream Candidates (Inherited)
Application Management (All Supported)
Application Management (All Supported)
- Move to Stage (Inherited)
- Get Rejection Reasons (Inherited)
- Reject Applications (Single & Bulk) (Inherited)
- Create Applications (Inherited)
- Get All Stages (Inherited)
Job Management (All Supported)
Job Management (All Supported)
- Get Job by ID (Inherited)
- Get Enhanced Job (Custom)
- Batch Job Operations (Inherited)
get_enhanced_job() returns Kombo job data plus SuccessFactors-specific fields. OData passthrough still fills typed requisition fields when available. Zone is flattened from the Kombo job custom field job_division (the SuccessFactors division object, as Leader Name (code)) so job integration rules can target zone leaders — including when OData enrichment fails. The flat Division field is not used for Zone.Candidate Management (All Supported)
Candidate Management (All Supported)
- Get Candidate by ID (Inherited)
- Find by Details (Inherited)
- Get Resume (Custom - SF OData passthrough
/Candidate(...)/resume) - Enhanced Candidate Data (Returns None - extensible)
Notes & Attachments (Mostly Supported)
Notes & Attachments (Mostly Supported)
- Application Notes (Supported - Inherited)
- Candidate Notes (Not Implemented - NotImplementedError)
- Application Attachments (Supported - Inherited)
- Candidate Attachments List (Not Supported - Kombo
GET /candidates/{id}/attachmentsreturnsINTEGRATION.ACTION_NOT_AVAILABLE)
Candidate Notes
Adding notes to candidates raises
Adding notes to candidates raises
NotImplementedError. Kombo doesn’t support this generically for SuccessFactors. Can be implemented via passthrough API if needed.Resumes vs. Kombo Attachments List
SuccessFactors candidates have resumes, but Kombo does not expose them via the unified candidate attachments list API. Resume download uses SF OData passthrough instead.
SuccessFactors candidates have resumes, but Kombo does not expose them via the unified candidate attachments list API. Resume download uses SF OData passthrough instead.
supports_kombo_candidate_attachments_list is False so re-sync skips the unsupported Kombo call; resume fetching is unchanged.Custom Fields (All Supported)
Custom Fields (All Supported)
- Application Custom Fields (Inherited)
- Candidate Custom Fields (Inherited)
- Job Custom Fields (Inherited)
Implementation Notes
SuccessFactors Library
IncludesSuccessFactorsLibrary for passthrough operations, though most functionality is handled by Kombo directly.
Field Classification
CustomFieldClassifier helper to categorize and process SuccessFactors-specific field types.
OData API
SuccessFactors uses OData v2 protocol. Passthrough URL points to/odata-v2 endpoint for any custom operations.
Note Formatting
Custom implementation of_create_plain_text_summary_from_call() for SuccessFactors-specific note formatting.
Implementation Progress
According to the implementation checklist:- 29 methods implemented (~90% complete)
- 1 method pending:
_add_note_to_candidate()(returns NotImplementedError) - All critical functionality is production-ready
Known Limitations
Candidate Notes Not Generic
Kombo doesn’t provide generic candidate note support for SuccessFactors. This could be implemented via passthrough API if required by a customer.
Kombo doesn’t provide generic candidate note support for SuccessFactors. This could be implemented via passthrough API if required by a customer.
Enhanced Job Data
Returns Kombo job data plus SuccessFactors-specific fields. Zone comes from the Kombo
Returns Kombo job data plus SuccessFactors-specific fields. Zone comes from the Kombo
job_division custom field (zone-leader name and code), not from OData passthrough. Other typed requisition fields still come from OData when that call succeeds.Related Files
- Implementation:
server/ats/successfactors/successfactors_ats_client.py - Library:
server/ats/successfactors/successfactors_library.py - Models:
server/ats/successfactors/successfactors_models.py - Checklist:
server/ats/successfactors/COMPLETE_SUCCESSFACTORS_IMPLEMENTATION_CHECKLIST.md - Quick Reference:
server/ats/successfactors/QUICK_REFERENCE.md - README:
server/ats/successfactors/README.md - Field Mappings:
server/ats/field_type_mapper.py(SUCCESSFACTORS_FIELD_MAPPINGS)