The following steps will walk you through integrating your SAP SuccessFactors Recruiting module with Karat. This integration will enable you to:
- Candidate invitations & status updates
- Invite candidates to their Karat interview from within SuccessFactors
- Get Karat status updates and results posted directly to candidate records in SuccessFactors
- View Karat assessment results in the Assessment Results Portlet on the candidate profile
- Role management automation
- Automate creation of Karat roles that maintain a one to one relationships with SuccessFactors Job Requisitions.
- Automatically align Karat Role state with Job Requisition state in SuccessFactors
- Disposition updates to Karat automation
- Automatically align candidate states on the Karat Platform with candidate states in SuccessFactors
How It Works
Once configured, a recruiter associates a Karat assessment package with a job requisition and moves a candidate to the assessment stage. SuccessFactors sends a webhook notification to Karat, which creates the interview invitation and emails the candidate. When the interview is complete, Karat posts the results and recommendation back to the candidate's record in SuccessFactors.
Each assessment package maps to either a Karat role or a Karat archetype:
- Role-based packages (KARAT_{roleId}) point to a specific, pre-existing role in Karat.
- Archetype-based packages (KARAT_ARCHETYPE_{archetypeId}) point to a template. When a candidate is assessed, Karat automatically creates a role for that job requisition from the archetype if one does not already exist.
Your Karat team will help determine which approach fits your hiring workflow.
Automatic Hiring Team Provisioning
When a role is created using an archetype-based package (KARAT_ARCHETYPE_{archetypeId}), Karat automatically creates user accounts for hiring managers and recruiters listed on the SuccessFactors requisition. These users are extracted from the requisition's hiring manager, hiring manager team, recruiter, and recruiter team fields. All extracted users are also added as followers on the role.
New users receive a "Welcome to Karat" email with a login link and a "Your role is live in Karat!" email with the role's assessment details.
For more details on what new users receive, see How To: Manage Karat Users (RBAC).
Prerequisites
- SuccessFactors Recruiting module enabled on your tenant.
- Admin Center access (required for most steps).
- Provisioning access (required for Steps 1, 3, and 7 -- see note below).
- A Karat account with Client Admin permissions.
As a customer, you may not have direct access to Provisioning. For steps that require Provisioning, contact your SAP implementation partner or Account Executive. For non-implementation tasks, contact SAP Technical Support.
For additional reference, see SAP's documentation on Integrating Recruiting with Third-Party Vendors for Candidate Assessment.
Setup in SuccessFactors
Perform the following tasks in your SuccessFactors tenant. You will need Admin Center access and, for some steps, Provisioning access.
1. Enable Assessment Integration in Provisioning
Enable the following options in Provisioning > Company Settings:
- Enable Assessment Integration
- SFAPI
- Enable SFAPI Webservices
These settings allow SuccessFactors to communicate with third-party assessment vendors like Karat.
View from SAP SuccessFactors HCM suite Provisioning:
SAP SuccessFactors HCM Suite Provisioning Company Settings
2. Add Karat as an Assessment Vendor
Users with Manage Assessment Vendors permissions can add assessment vendors.
- Go to Admin Center > Manage Assessment Vendors.
- Export the CSV file to generate a sample file with the required columns (recommended for first-time setup).
- Fill in the following required fields:
| Field | Value |
| externalPartnerCode | KARAT |
| clientId | KARAT (must be unique in the file) |
| active | Y |
- Import the completed CSV file.
Complete the import/export of assessment vendors before importing assessment vendor packages. Importing packages first will cause an error.
3. Upload the Assessment Vendor Packages
The assessment vendor package CSV defines which Karat roles and archetypes are available as assessment options in SuccessFactors. Each entry becomes a selectable assessment that can be associated with a job requisition. You must have Provisioning access to complete this step.
- Go to Provisioning > Managing Recruiting > Import/Export Assessment Vendor Packages.
- Export the CSV file to generate a sample file with the required columns (recommended for first-time setup).
- Fill in the following required fields for each Karat role or archetype:
| Field | Description | Example |
| vendorId | Must match the clientId from Step 2 | KARAT |
| packageCode | Identifies the Karat role or archetype | KARAT_12345 or KARAT_ARCHETYPE_abc |
| shortName | Shortened name shown on the candidate summary page | Software Engineer Assessment |
| Reportpackagecode, | Associates assessment report data with the vendor package | KARAT |
| Label columns (e.g., en_US) | Display name for each locale | Software Engineer - Karat Assessment |
The following columns are included in the template but are not used. You can leave them empty: ComparisongroupID.
- Import the completed CSV file.
Package code format:
- For roles: KARAT_{roleId} (e.g., KARAT_12345)
- For archetypes: KARAT_ARCHETYPE_{archetypeId} (e.g., KARAT_ARCHETYPE_abc)
The packageCode format must match exactly. Karat parses this value to determine which role or archetype to use for the assessment. If the prefix does not match, the assessment will fail. When a candidate is assessed using an archetype-based package (KARAT_ARCHETYPE_), Karat automatically creates a role for the job requisition if one does not already exist. Role-based packages (KARAT_) require the role to already exist in Karat.
Example CSV
"vendorId","packageCode","reportPackageCode","comparisonGroupId","shortName","pt_BR","ar_SA","es_ES","nl_NL","en_DEBUG","ko_KR","en_US","ru_RU","fr_FR","ja_JP","de_DE","zh_TW","en_GB","zh_CN","pt_PT","sv_SE","da_DK","nb_NO","fi_FI","it_IT"
"KARAT","KARAT_23541","","","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer","Frontend Engineer"
"KARAT","KARAT_ARCHETYPE_20","","","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer","Backend Engineer"
Role IDs can be found in the URL when viewing a role on the Karat Platform:
Archetype IDs can currently be found by contacting Karat customer support as they are not yet available in the user interface.
View from SAP SuccessFactors HCM suite Provisioning:
Import/Export Assessment Vendor Packages
4. Create an Integration User and Grant Permissions
Create a dedicated integration user for Karat and grant it the required permissions.
Create the integration user:
- In Admin Center, search for Add New Employee and create a new user for the integration (e.g., username sfapi_user).
Create a Permission Group:
- Go to Admin Center > Manage Permission Groups.
- Click Create New and name it (e.g., KARAT_INTEGRATION).
- Under Choose Group Members, search for and select the integration user you created.
- Save.
Create a Permission Role and assign permissions:
- Go to Admin Center > Manage Permission Roles.
- Click Create New and name it (e.g., KARAT_SFAPI_Role).
- Click the Permission... button and grant the following permissions:
| Permission | Purpose |
| API User Login | Authenticate via the API |
| Access to Event Notification Subscription | Receive webhook notifications for assessment events |
| OData API Application Export | Read job applications, assessment orders, assessment reports, comments, and application statuses |
| OData API Candidate Export | Read candidate contact information |
| OData API Job Requisition Export | Read job requisition and assessment package details |
| OData API Application Create | Post assessment results and status comments to candidate records |
- Under Grant this role to..., click Add, select Permission Group, and choose the group you created above.
- Save.
The User ID needed for OAuth authentication is the numeric user ID, not the username. You can find it by querying the User entity in the OData API or by checking the user's profile in Admin Center.
Set API login exceptions (Optional):
- Go to Admin Center > Password & Login Policy Settings > Set API Login Exceptions > Add.
- Configure the following:
- Username: Select the SFAPI integration user
- Maximum password age (days): Set to -1 (no expiration)
- IP Address Restrictions: Add designated IP addresses or address range for use with the integration (your Karat team will provide these)
5. Register an OAuth Client (X.509 Certificate)
Karat authenticates with SuccessFactors using an X.509 certificate-based OAuth flow. You will need to register an OAuth client application and provide Karat with the credentials.
- In your SuccessFactors Admin Center, search for Manage OAuth2 Client Applications in the search bar.
- Fill in the following fields:
| Field | Value |
| Company | Pre-filled with your Company ID. Note this value for later. |
| Application Name | Karat (or a name of your choice) |
| Description | (optional) e.g., Karat assessment integration |
| Application URL | https://kats.karat.io |
| Bind to Users | Check this box (Optional) |
| User IDs | Enter the User ID of the integration user created in Step 4 (if Bind to Users is checked) |
- Click Generate X.509 Certificate to create a new certificate, or paste an existing X.509 certificate in PEM format into the certificate field.
- Click Register to save the OAuth client.
- After registration, SuccessFactors will generate an API Key. This is your Client ID for OAuth authentication.
Download the certificate and private key:
After generating the certificate, click Download to save the X.509 certificate and private key. Keep the private key secure. You will need it when configuring Karat.
Note the following values for the Karat configuration:
| Value | Where to find it |
| Client ID (API Key) | Shown after registration on the OAuth client details page |
| Company ID | The Company field on the registration form |
| User ID | The numeric User ID of the integration user created or used in Step 4 |
| Private Key (PEM) | Downloaded with the X.509 certificate |
| OAuth URL | Your SuccessFactors OAuth server base URL (e.g., https://hcm-us20-sales.hr.cloud.sap) |
| Base URL | Your OData V2 API base URL (e.g., https://api55.sapsf.com) |
The OAuth URL and Base URL are specific to your tenant region. Your SuccessFactors administrator or SAP support team can help identify the correct values.
6. Configure Event Notification Subscription
SuccessFactors notifies Karat about new assessment requests through a webhook. You must configure an Event Notification Subscriber and Subscription that fire when a recruiter triggers an assessment.
Add a Subscriber:
- Go to Admin Center > Event Notification Subscription.
- Click the Subscriber tab, then click Edit Subscriber to add a new subscriber.
- Complete the following fields:
| Field | Value |
| Category | Customized |
| Subscriber ID | KARAT |
| Name | Karat Assessment Integration |
| Group | Assessment |
| Status | Active |
| Client Id | KARAT (must match the externalPartnerCode from Step 2) |
Event Notification Subscriber configuration page
Add an External Event Subscription:
- Click the External Event tab, then click Add to configure a new subscription.
- Complete the following fields:
| Field | Value |
| Alert Type | rcm_assessment_alert_V2 |
| Subscriber ID | Select the KARAT subscriber you created above |
| Protocol | SOAP_OVER_HTTP_HTTPS |
| Endpoint URL | Karat webhook URL (see format below) |
The endpoint URL follows this format:
https://kats.karat.io/successfactors?integration_id={YOUR_INTEGRATION_ID}
Your Karat team will provide the exact URL including the integration_id value after the Karat-side configuration is complete.
7. Configure Job Requisition XML (Provisioning)
Two XML changes are required in the Job Requisition template to enable the assessment field and the Assessment Results Portlet. These changes require Provisioning access.
If your tenant has multiple Job Requisition templates, make sure you are editing the template used by the requisitions that will have Karat assessment associations.
Add the assessment field:
Add the assessment field definition and permission to the Job Requisition XML:
<field-definition id="assessment" type="derived" required="true" custom="false">
<field-label><![CDATA[Assessment association]]></field-label>
<field-description><![CDATA[Assessment association]]></field-description>
</field-definition>
<field-permission type="write">
<description><![CDATA[assessment permissions]]></description>
<role-name><![CDATA[R]]></role-name>
<status><![CDATA[pre-approved]]></status>
<field refid="assessment"/>
</field-permission>
Add the Assessment Integration feature permission:
This feature permission controls visibility of the Assessment Results Portlet and assessment columns (Score Recommendation, Assessment Status). Add a block for every application status that candidates may have when viewing results. If a status is missing, the portlet will not appear and columns will show "N/A.
<feature-permission type="assessmentIntegration">
<description><![CDATA[Operators with below roles can see Assessment detail report]]></description>
<role-name><![CDATA[S]]></role-name>
<role-name><![CDATA[T]]></role-name>
<role-name><![CDATA[O]]></role-name>
<role-name><![CDATA[R]]></role-name>
<role-name><![CDATA[G]]></role-name>
<status><![CDATA[Default]]></status>
</feature-permission>
Add a feature-permission block for each applicant status where the portlet should appear (e.g., Phone Screen, Interview 1, Offer, Accepted).
These XML changes are typically performed by your SAP implementation partner. Refer to SAP's Integrating Recruiting with Third-Party Vendors for Candidate Assessment documentation for the full XML reference.
Add Configuration to the Karat Platform
In the previous steps (specifically Step 5) you noted the following credentials:
- Client ID
- Company ID
- User ID
- Private Key (PEM)
- OAuth URL
- Base URL
Create a SuccessFactors ATS Integration in Karat
You must be an Admin to complete these actions.
- Navigate to Settings > ATS Integrations.
- Click Add Integration and select SuccessFactors as the ATS type.
Configure the Integration Settings
Paste the credentials from the SuccessFactors setup into the integration settings form:
| Field | Description | Example |
| Base URL | OData V2 API base URL for your tenant | https://api55.sapsf.com |
| Client ID | OAuth client ID from Step 5 | (provided by your SF admin) |
| Company ID | Your SuccessFactors company identifier | (provided by your SF admin) |
| User ID | Integration user ID for OAuth | (provided by your SF admin) |
| Private Key | X.509 private key in PEM format | (provided by your SF admin) |
| OAuth URL | OAuth server base URL for your tenant region | https://hcm-us20-sales.hr.cloud.sap |
Click Save to store the configuration.
Set Up Stage Mappings
- On the Stage Mapping tab, click Retrieve New Stages.
- If this request fails, there is an issue with the credentials or permissions configured above.
- Map the SuccessFactors application stages to Karat stages.
Using the Integration
Add a Karat Assessment to a Job Requisition
Before candidates can be assessed through Karat, a recruiter must associate a Karat assessment package with the job requisition.
- Open the job requisition in SuccessFactors.
- In the requisition settings, click Add Assessment.
- Select the desired Karat assessment (role or archetype) from the list of available assessment packages. These were uploaded in Step 3 of the SuccessFactors setup.
Send a Karat Assessment Invite to a Candidate
- Select a candidate in SuccessFactors for a requisition that has a Karat assessment configured.
- Move the candidate to the assessment stage (e.g., "Interview" or your configured assessment stage).
- SuccessFactors creates an Assessment Order and sends a webhook notification to Karat.
- Karat processes the webhook, creates a role from archetype if necessary, creates the assessment invitation, and returns the assessment URL to SuccessFactors.
- Within a few moments, a comment will appear on the candidate's application confirming the invitation was created.
If the invitation comment does not appear after a few minutes, check that the Event Notification Subscription is configured correctly and that the webhook endpoint is reachable.
Assessment Result Field Population
Status and results are posted to the candidate's record as their Karat assessment progresses. Karat posts results in two places:
- Assessment Report (visible in the Assessment Results Portlet on the candidate profile)
- Application Comments (visible in the comments section of the candidate's application)
Assessment Report Status
The Assessment Results Portlet displays structured assessment data. The report status changes as the assessment progresses:
| Assessment Stage | Report Status | Description |
| Assessment created | Initiated | Karat has received the assessment request and created the invitation |
| Assessment completed | Completed | Results are available; the report URL links to the full Karat results |
| Assessment failed | Failed | An error occurred during the assessment process |
Assessment Report Fields
When the assessment is complete, the following fields are populated in the Assessment Results Portlet:
| Field | Description | Example |
| Status | Current assessment status | Completed |
| Status Details | Summary of the candidate's performance | Candidate performed well on system design questions |
| Report URL | Link to the full Karat results page (only visible when status is Completed) | https://app.karat.com/interviews/report/xyz |
| Score Component | The type of score reported | Recommendation |
| Score Value | The Karat recommendation | Invite to Next Round |
| Status Date | When the result was posted | 2026-03-01 |
Application Comments
In addition to the structured Assessment Report, Karat posts human-readable status updates and result summaries as comments on the candidate's application. Comments include:
- Status updates: Posted when the assessment is created (e.g., "Karat assessment initiated")
- Result summaries: Posted when results are available, including the recommendation
- Result URL: A direct link to the full Karat results page
Troubleshooting
Invitation Not Created
If a comment does not appear on the candidate's application after moving them to the assessment stage:
- Verify the Event Notification Subscription is active and pointing to the correct Karat webhook URL.
- Check the assessment package on the job requisition. The packageCode must use the KARAT_ prefix (or KARAT_ARCHETYPE for archetypes) and reference a valid Karat role or archetype ID.
- Verify the Vendor Code on the assessment package is set to KARAT. Karat ignores assessment orders from other vendors.
- Check credentials by clicking "Retrieve New Stages" on the Stage Mapping tab in Karat. If this fails, the OAuth credentials or permissions are incorrect.
Results Not Appearing in Assessment Results Portlet
If results are posted (you can see them in application comments) but the Assessment Results Portlet does not display them, or the assessment columns (Recommendation, AssessmentStatus) show "N/A":
- Verify the assessmentIntegration feature permission is added to the Job Requisition XML for the relevant applicant statuses (see Setup Step 7).
- Verify the Assessment Results Portlet is enabled in your SuccessFactors tenant configuration.
- Check the vendor package setup in SuccessFactors Provisioning. The portlet requires the assessment vendor to be properly registered (see Setup Steps 2 and 3).
- Contact your SuccessFactors administrator or SAP support, as portlet visibility is controlled by tenant-level configuration.
Authentication Errors
If you see authentication errors in the Karat logs or the integration stops working:
- Verify the X.509 certificate has not expired. Certificates have an expiration date and must be renewed.
- Check that the integration user account is still active in SuccessFactors.
- Confirm the OAuth URL and Base URL match your tenant region. These can change if your tenant is migrated.
Demo: https://karat.slab.com/public/posts/karat-success-factors-integration-demo-zna6yvuq