CXone Admin API: Bulk-updating agent skills with OTel trace context injection

We’re trying to update agent skill proficiencies in bulk using the CXone Admin API (POST /api/v2/admin/users/{userId}/skills). The goal is to capture these updates in our OpenTelemetry traces.

Here’s the issue: the CXone API doesn’t seem to accept or propagate standard OTel headers (traceparent, tracestate) in the request. We’re seeing the span start in our SDK, but the downstream trace in Jaeger shows no parent context.

Code snippet for the request:

const axios = require('axios');
const opentelemetry = require('@opentelemetry/api');

const span = tracer.startSpan('cxone-skill-update');
const context = opentelemetry.trace.setSpan(opentelemetry.context.active(), span);

const headers = {
 'Authorization': `Bearer ${token}`,
 'Content-Type': 'application/json',
 ...opentelemetry.propagation.inject(context, {})
};

const payload = {
 skills: [
 { skillId: 'skill_123', proficiency: 'advanced' },
 { skillId: 'skill_456', proficiency: 'intermediate' }
 ]
};

try {
 const response = await axios.post(`https://api.cxone.com/api/v2/admin/users/${userId}/skills`, payload, { headers });
 span.setStatus({ code: opentelemetry.SpanStatusCode.OK });
} catch (error) {
 span.setStatus({ code: opentelemetry.SpanStatusCode.ERROR, message: error.message });
} finally {
 span.end();
}

The API returns 200 OK, but the trace in Jaeger is orphaned. No parent span is linked.

Is there a specific header or method CXone uses for trace propagation? Or is this just not supported? We’ve tried adding X-Trace-Id manually, but no luck.

Any insights?