I’ve spent hours trying to figure out why the WFM Quality Management API is returning a 400 Bad Request when posting a new evaluation via the ServiceNow Data Action. The payload matches the schema in the documentation exactly, including the interaction_id and evaluator_id. We are using the v1.0 endpoint for /quality/evaluations. The error response body is empty, which makes debugging difficult. Is there a specific timezone format required for the start_time field that differs from ISO 8601? We are in Europe/London. Any insights on hidden validation rules would be appreciated.
How I usually solve this is by ensuring the start_time is strictly UTC without any offset indicators, as the API rejects local timezone strings.
“Invalid value for start_time: expected UTC ISO 8601 format”
Check that your ServiceNow flow converts the timestamp to YYYY-MM-DDTHH:mm:ssZ before sending.
You need to verify the payload structure against the specific WFM Quality API schema, as generic ServiceNow data actions often inject extra fields that trigger validation failures. The empty 400 response usually indicates a schema mismatch rather than a simple format error. Check if your JSON includes nested objects for criteria that are required but missing.
“Validation failed for field ‘criteria’: array item must include ‘score’ and ‘weight’”
This happens frequently when pushing evaluation data from external tools. The API expects a strict array of criteria objects, not just the interaction ID. Try stripping the payload down to the bare minimum required fields first.
{
“interaction_id”: “123”,
“evaluator_id”: “456”,
“criteria”: [
{
“id”: “crit_1”,
“score”: 100,
“weight”: 1.0
}
]
}
If that works, gradually add fields back. Also, ensure you are not hitting rate limits by sending these requests in rapid succession during peak load.