> ## Documentation Index
> Fetch the complete documentation index at: https://f4c7a9e2d8b1-docs.tenzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SuccessFactors ATS

> Feature coverage and implementation details for SuccessFactors integration

## Implementation Overview

**Implementation Type:** Kombo-based Integration\
**Note 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

| Property               | Value                                  |
| ---------------------- | -------------------------------------- |
| Provider Enum          | `successfactors`                       |
| Note Format            | `PLAIN`                                |
| Disposition Reasons    | Supported                              |
| All Application Stages | Supported                              |
| Passthrough URL        | `/passthrough/successfactors/odata-v2` |

## Feature Summary

Nearly complete implementation with all core features supported and tested.

<AccordionGroup>
  <Accordion title="Streaming Operations (All Supported)" defaultOpen>
    * Stream Jobs (Inherited)
    * Stream Applications (Inherited)
    * Stream Candidates (Inherited)

    All streaming operations fully functional through Kombo.
  </Accordion>

  <Accordion title="Application Management (All Supported)">
    * Move to Stage (Inherited)
    * Get Rejection Reasons (Inherited)
    * Reject Applications (Single & Bulk) (Inherited)
    * Create Applications (Inherited)
    * Get All Stages (Inherited)

    Complete application lifecycle management.
  </Accordion>

  <Accordion title="Job Management (All Supported)">
    * Get Job by ID (Inherited)
    * Get Enhanced Job (**Basic Implementation**)
    * Batch Job Operations (Inherited)

    **Implementation Notes:**\
    `get_enhanced_job()` currently returns standard Kombo job data. Can be extended with SuccessFactors-specific fields via passthrough when needed.
  </Accordion>

  <Accordion title="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)

    Full candidate management through Kombo, with resume download via passthrough.
  </Accordion>

  <Accordion title="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}/attachments` returns `INTEGRATION.ACTION_NOT_AVAILABLE`)

    <Note>
      **Candidate Notes**\
      Adding notes to candidates raises `NotImplementedError`. Kombo doesn't support this generically for SuccessFactors. Can be implemented via passthrough API if needed.
    </Note>

    <Note>
      **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. `supports_kombo_candidate_attachments_list` is `False` so re-sync skips the unsupported Kombo call; resume fetching is unchanged.
    </Note>
  </Accordion>

  <Accordion title="Custom Fields (All Supported)">
    * Application Custom Fields (Inherited)
    * Candidate Custom Fields (Inherited)
    * Job Custom Fields (Inherited)

    Full custom field support across all entity types through Kombo.
  </Accordion>
</AccordionGroup>

## Implementation Notes

### SuccessFactors Library

Includes `SuccessFactorsLibrary` for passthrough operations, though most functionality is handled by Kombo directly.

### Field Classification

Custom `FieldClassifier` 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

<Note>
  **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.
</Note>

<Info>
  **Enhanced Job Data**\
  Currently returns basic job data. Can be extended with SuccessFactors-specific fields via passthrough API when customer requirements dictate.
</Info>

## 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)

## See Also

* [ATS Coverage Matrix](/internal/ats-coverage)
* [SAP SuccessFactors Documentation](https://www.successfactors.com/)
