Hey,
1. How do I trigger the lambda action? Upon creation of a Conversation record? Any Conversation record? Ideally a subset?
As Parvez mentions, within the EventBridge integration you can filter messages sent to EventBridge in your AWS account. The topics you can filter events by are listed under the Available Topics (check the EventBridge box).
Events within Genesys Cloud that match the topics you select are then sent to EventBridge in your AWS account. From there you can specify rules to filter them based on attributes within the event.
Below is an example rule for EventBridge that will only call the downstream lambda if:
- It is a conversation starting/ending for voice channel on a particular queue
- or is a transcription event
{
"source": [{
"prefix": "aws.partner/genesys.com"
}],
"$or": [{
"detail-type": ["v2.detail.events.conversation.{id}.user.start", "v2.detail.events.conversation.{id}.user.end"],
"detail": {
"eventBody": {
"mediaType": ["VOICE"],
"queueId": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]
}
}
}, {
"detail-type": ["v2.conversations.{id}.transcription"]
}]
}
2. I assume the queue that you're referring to is on the AWS side and I also assume that the lambda function could also extract Conversation data like recordings, transcripts, participant data, etc.?
Sorry, that was confusing of me to talk about queues given the two contexts. You're right though, I was referring to a queue on the AWS side.
You could call the lambda function directly, or use something like Amazon SQS > Lambda.
Within the lambda you can then call Genesys Cloud's Platform API to extract out the necessary information about about a conversation, however there are some considerations:
- Sometimes you may receive an event about about a change to a conversation, but the Conversation's details queried through the Platform API may not yet reflect those changes.
- Retrieving transcripts/recordings can take awhile, whilst you wait for them to be unarchived. This delay has to be factored into the architecture you choose i.e. lambdas vs a long running service.
I hope that helps...
------------------------------
Lucas Woodward
Winner of Orchestrator of the Year, Developer (2025)
LinkedIn -
https://www.linkedin.com/in/lucas-woodward-the-devNewsletter -
https://makingchatbots.com------------------------------
Original Message:
Sent: 11-25-2025 17:17
From: Carlos Martelo
Subject: Advice on integration approach
Hi Lucas, I'm leaning toward using the AWS EventBridge and have follow up questions:
- How do I trigger the lambda action? Upon creation of a Conversation record? Any Conversation record? Ideally a subset?
- I assume the queue that you're referring to is on the AWS side and I also assume that the lambda function could also extract Conversation data like recordings, transcripts, participant data, etc.?
Thoughts?
------------------------------
Carlos Martelo
Senior Director, Product Management - Vault Medical
------------------------------
Original Message:
Sent: 07-08-2025 09:24
From: Lucas Woodward
Subject: Advice on integration approach
Hey,
To your question about pulling a conversation from Genesys into your system, I've worked on a number of solutions that tackled this differently.
I'm not sure if they relate your your setup, but I thought I'd share them incase they're of some use.
Notifications APIs
I was working on a solution that required the UI to render a live transcript of the agent's conversation.
I wrote about the solution here:
The relevant part of the solution comprised of:
- Listening to the Embedded Framework's Conversation Started event
- Using the Conversation ID from this event to subscribe to a topic on the Notification API
If you're after transferring data between systems then this likely isn't a good fit for you.
AWS EventBridge Integration
Genesys Cloud's EventBridge Integration is a good candidate if you want to know in near-realtime (and with resiliency) whether a conversation has started (amongst many other topics).
The solution I worked on used EventBridge to:
- Trigger an AWS Lambda (which can easily scale for spiky contact-centre traffic) whenever a conversation started.
- The Lambda pushed the Conversation ID onto a queue to be processed
- The IDs in the queue were processed and enriched with additional data from Genesys's Platform API before it was saved into another system.
Data Action
A simple, though unreliable, solution I've also used is to place a Data Action at the beginning of a flow that calls a downstream service with the conversation ID.
This is simple, but unreliable as:
- A failure to call the downstream API (.e.g. the API being unavailable) means you lose the Conversation ID
- All relevant convos need to go through this flow.
I hope this may be of some use.
------------------------------
Lucas Woodward
OVO Energy Ltd
https://www.linkedin.com/in/lucas-woodward-the-dev