We’re running into a weird issue with the Node.js SDK where updating the wrap-up code after an outbound interaction ends just doesn’t stick. The API call returns a 200 OK, but if I check the interaction in the admin dashboard or query it later, the wrap-up is still blank. We’re using genesyscloud_conversations_api version 10.4.0.
Here’s the flow. Our dialer campaign kicks off, the agent connects, and once they hang up, our Node.js service picks up the conversation:wrapup webhook event. We parse the interaction ID and try to push the specific wrap-up code that was selected in our custom CRM screen back to Genesys. The code looks like this:
const wrapupData = {
wrapupCode: {
id: 'valid-wrapup-code-id-from-api',
name: 'Voicemail Left'
},
participantId: participantIdFromWebhook
};
try {
const result = await conversationsApi.postConversationWrapup({
conversationId: interactionId,
body: wrapupData
});
console.log('Wrapup updated:', result.response.body);
} catch (error) {
console.error('Failed to update wrapup:', error);
}
The result.response.body comes back with the correct wrap-up code object. No errors thrown. But when I hit GET /api/v2/conversations/{id}/wrapups immediately after, the array is empty. It’s like the server accepted it but dropped it. We’ve tried adding a 5-second delay before the check, thinking it might be eventual consistency, but no luck. Also tried using the raw REST client instead of the SDK methods just to be sure it wasn’t a serialization bug. Same result. 200 OK, then nothing.
Is there a specific state requirement I’m missing? The interaction shows as closed in the webhook payload. We have the conversation:write scope on the OAuth token. Anyone seen this before with outbound campaigns specifically? Feels like a bug on the platform side but want to rule out our setup first.