Node.js Lambda ignoring Genesys Cloud webhook payload structure

My Lambda function keeps crashing with a TypeError: Cannot read properties of undefined (reading 'id') when processing conversation-created events. I’ve verified the endpoint is live and receiving 200 OKs from the initial ping, but the actual event payloads are breaking the parser. The issue seems to be that Genesys wraps the event in an events array, but my handler is expecting a flat object. Here’s the snippet causing the headache:

exports.handler = async (event) => {
 const body = JSON.parse(event.body);
 // This line fails because body.events is undefined for some reason
 const conversationId = body.events[0].id;
 
 console.log('Processing:', conversationId);
 return { statusCode: 200, body: 'OK' };
};

I’m logging the raw event.body to CloudWatch and it looks like valid JSON, but the structure isn’t matching what I see in the docs. Am I missing a middleware step or is the payload format different for this specific event type?