Performance management integration fails to sync employee goals to talent platform

We’re trying to sync employee performance goals from Workday to our external talent management platform, but the integration is not transferring the goals data correctly. The integration runs without throwing errors, but when we check the target system, the goals are either missing or incomplete.

I’ve reviewed the integration template and the mapping appears correct. The goals data exists in Workday performance management module, but something is failing during the sync process.

Error pattern we’re seeing:


Integration: GOALS_SYNC_PM
Records Retrieved: 247
Records Mapped: 247
Records Transmitted: 0

The mapping step succeeds but transmission fails silently. Has anyone successfully configured goals data integration from performance management? What specific fields or settings might cause this transmission failure?

Check your integration template’s delivery configuration for batch size settings. We encountered a scenario where the integration was trying to send 247 records in a single batch, but the external API had a limit of 100 records per request. The entire batch failed silently. Try configuring your integration to use smaller batch sizes or implement pagination in your delivery step. Also verify that your talent platform’s API hasn’t changed rate limiting policies.

I had a similar issue with goals integration. The problem was that our integration template was trying to send nested goal data in a flat structure. Performance goals in Workday have hierarchical relationships (parent goals, sub-goals) that need to be properly serialized. Check your JSON structure in the transformation step to ensure you’re handling the goal hierarchy correctly. The external system might be rejecting malformed payloads without returning an error.

Your ‘Records Transmitted: 0’ despite successful mapping indicates a delivery step failure. Let me address all three focus areas comprehensively.

Goals Data Structure Analysis: Performance goals in Workday have a complex nested structure that requires careful handling. Your integration is retrieving and mapping 247 records but failing at transmission, which suggests a structural issue.

First, verify your goals data includes all required attributes:

  • Goal name and description
  • Owner (employee reference)
  • Target completion date
  • Goal status (Active/Draft/Completed)
  • Goal category and type
  • Success criteria and measurements
  • Parent goal relationships (if applicable)

The issue is likely in how you’re serializing nested goal data. Performance goals often have sub-goals or linked development activities that create hierarchical relationships. Your talent platform probably expects a flattened structure or a specific JSON schema.

Navigate to your integration template and check the goal object transformation. Ensure you’re handling parent-child relationships correctly:


if (goal.parent_goal exists)
  map parent_goal_id to external_parent_id
else
  set parent_goal_id to null

Integration Template Configuration: Your template has three critical areas that need review:

  1. Retrieval Step: Verify your goal selection criteria. Add these filters to your Get_Goals retrieval:

    • Goal Status: Include only ‘Active’ and ‘In Progress’
    • Goal Period: Current performance review period
    • Worker Status: Active employees only
    • Exclude system-generated goals if your talent platform doesn’t support them
  2. Transformation Step: This is where your issue likely resides. Check these specific mappings:

    • Date fields: Ensure target dates use the correct format (ISO 8601 vs MM/DD/YYYY)
    • Percentage fields: Verify goal weights and progress percentages are formatted as decimals (0.75) not percentages (75%)
    • Reference fields: Employee IDs must match the format in your talent platform (Workday ID vs external ID)
    • Custom fields: Any custom goal attributes need explicit mapping
  3. Delivery Step: Your transmission failure points here. Verify:

    • Endpoint URL is correct and accessible from your Workday tenant
    • HTTP method is correct (POST for new goals, PUT for updates)
    • Content-Type header matches your payload format (application/json)
    • Batch size doesn’t exceed the external API’s limit
    • Timeout settings allow for large payloads

Mapping Validation and Troubleshooting: The zero transmission indicates your delivery configuration needs attention:

First, test your endpoint connectivity independently. In Integration System Security → External Endpoints, run a connection test. If it fails, your credentials or network configuration is the issue.

Second, examine your actual payload structure. Enable debug logging and capture a sample:

  • Go to Integration Events → Select GOALS_SYNC_PM → View Event Details
  • Export the mapped payload before delivery
  • Validate it against your talent platform’s API schema

Common mapping issues causing silent failures:

  • Array handling: Goals with multiple success criteria must be sent as JSON arrays, not comma-separated strings
  • Null values: Your talent platform might reject records with null required fields. Add default values or conditional logic
  • Character encoding: Goal descriptions with special characters might break JSON parsing. Implement proper escaping
  • ID format mismatches: Workday uses WID format internally, but your external system needs string or integer IDs

Resolution Steps:

  1. Modify your delivery step to implement error handling:

    • Add a retry mechanism for failed transmissions
    • Configure error logging to capture API response details
    • Set up email notifications for delivery failures
  2. Implement batch processing:

    • Split your 247 records into batches of 50
    • Add delay between batches to respect rate limits
    • Track successful vs failed records
  3. Test with a single goal first:

    • Create a test integration with a filter for one specific employee
    • Verify the payload structure manually
    • Confirm successful delivery before enabling full sync
  4. Coordinate with your talent platform vendor:

    • Request their API logs for your integration attempts
    • Verify no recent API changes affecting goal endpoints
    • Confirm your authentication scope includes goal write permissions

The most likely root cause is either a batch size limit being exceeded (247 records is large for some APIs) or a required field in your talent platform that isn’t being populated by your mapping. Focus on those two areas first, then work through the payload structure validation.

Implement incremental testing: Start with 10 goals, verify success, then scale up. This will help isolate whether it’s a volume issue or a data structure problem.

Look at your goal status filters in the retrieval step. By default, the integration might be pulling all goals regardless of status, but your external system only accepts active or approved goals. Add a filter in your integration template to exclude draft, cancelled, or completed goals. Also check if your goal categories are mapped correctly - some talent platforms require specific category codes that don’t automatically map from Workday’s goal types.

The ‘Records Transmitted: 0’ after successful mapping usually indicates a problem with your delivery step configuration. Check if your external endpoint is properly configured in the integration template. Also verify that the authentication credentials for your talent platform are still valid and have the necessary permissions to create goal records.

Have you verified the goal data structure in your mapping? Performance goals have complex attributes like target dates, measurement criteria, and weight percentages that need explicit mapping. If any required field in your talent platform is missing from the mapped payload, the entire transmission might fail. Use the integration event viewer to inspect the actual payload being generated and compare it against your talent platform’s API requirements.