cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Permission issue creating development goals via API (Goal Management)

0 Kudos
276

Hello everyone,

I need your help with a permission issue in SAP SuccessFactors Performance and Goals

I'm trying to create development goals for other users via the OData API, but I'm getting an authorization error. The API works correctly when the userId in the body matches the user making the call, but it fails when I try to create a goal for a different user.

My goal is to allow a specific user to create development goals for any other user in the company.


Technical Details:

  • API Used: POST /odatav4/talent/goals/DevGoalDetail2001.svc/v1/Goal

  • Error Message:  

{
    "error": {
        "code": "NotAuthorized",
        "message": "You do not have permission to create/edit the goal or group goal."}
}
  • Example of the failed API call:

    {
      "category": "Solving",
      "name": "Relational database management",
      "start": "2023-07-01",
      "due": "2033-12-31",
      "state": "Not Started",
      "purpose": "Current Role",
      "competencies": [
        {
          "competencyId": 1896304
        }
      ],
      "description": "The employee must learn to ....",
      "userId": "10001569", // userId is different from the user making the call
      "type": "development"
    }

My Question Is:

How do I configure my user's permissions to allow a user to create development goals for others through this API?
Is there any special configuration for APIs that I should be aware of?

Any help or advice would be greatly appreciated. Thank you!

View Entire Topic
Chuma
Active Contributor
0 Kudos

Hello @Daniel_TabaresPavas 

Thanks for your detailed message.

The error you're seeing:

{
"error": {
"code": "NotAuthorized",
"message": "You do not have permission to create/edit the goal or group goal."
}
}

usually means that the user calling the API doesn’t have the right permissions to create a goal for someone else. Even though it works when the userId matches the caller, Success Factors applies stricter checks when you're acting on behalf of another user,  especially through the API.
What you can do:

Enable proxy permissions
Go to Manage Permission Roles and make sure the user making the call has:

Act on behalf of another user (Proxy Now)

"Proxy Now Permissions"

Check Goal Management permissions
In the same role, under Goal and Development Plan Permissions, they’ll also need:

Create, Edit, and View Development Goals

These should apply to the right target population (All employees or a defined group).

Confirm development plan access
Both the API user and the employee you're assigning the goal to must be assigned the same active development plan template.

Ensure API role access
The user also needs permission to use the OData API and Goal Management API endpoints.

Quick way to confirm:

If you log in as the API user and use "Proxy Now" to act as the target employee, try creating a development goal manually. If it works, the API should work too  assuming permissions and tokens are set up properly.

DevGoal-SAP help 

2091616 - How to grant Proxy permission only to Career Development Planning by proxy import - Career... 

3354229 - How to Grant Proxy Access to Users via ODATA API 

Configuring Goal Plan Permissions 

Let me know if it works

With regards

Chuma