Original Message:
Sent: 04-16-2026 09:53
From: Phaneendra Avatapalli
Subject: Best approach for assigning incidents to final agent (Workflow vs Script)?
Hi Suryavesh,
Thank you for your input you're actually the first person I've come across who is working with BMC Helix. I've built a script‑based approach where the agent clicks a button, which then creates a ticket and opens the ticket URL in a new window. Based on your suggestion, I'm sure it will be possible to hide the "Create Ticket" button after a successful creation using a custom action I'll give that a try, so thank you for the insight.
I'm keeping everything script‑based for now because using a trigger or workflow ends up creating duplicate or unassigned tickets, which makes it much harder to manage.
The ID Number is passed in from the IVR, and if it's missing or incorrect, I've added an input field that feeds into the function to create and assign the ticket. Everything from generating the JWT through to assignment is handled within a single function in the script.
Have you also worked with the knowledge‑side integration? I've done a minimal setup where I export all BMC Helix knowledge articles into a Google Sheet as direct links. I'd be interested to hear whether you've implemented anything more advanced on the knowledge side.
------------------------------
Phaneendra
Technical Solutions Consultant
Original Message:
Sent: 04-10-2026 12:02
From: Suryavesh Sahani
Subject: Best approach for assigning incidents to final agent (Workflow vs Script)?
We've already built the core flow for creating and assigning incidents between Genesys Cloud and BMC Helix. Everything works technically.. When I started testing real-world call scenarios some gaps showed up:
* If a customer abandons in queue an incident still gets. Has no agent assigned to it.
* If an agent doesn't answer and the call reroutes the incident still gets. Ends up assigned to the first agent who missed the call, which is wrong.
These edge cases make it clear I need a way to determine who actually handled the interaction not just who was offered the call.
So I'm looking at two approaches.
### Option 1. Workflow-Based
My idea is to let the interaction finish use a trigger/workflow to:
* Pull conversation details via the Conversation API.
* Filter participants where:
* purpose = "agent"
* state = "connected"
* Collect all agents who were truly connected.
* Take the connected agent.
I think this pattern is commonly used in Genesys workflows. The " connected agent" logic is generally reliable because Genesys logs every state transition.
The key is filtering for actual connection not alerting or ringing.
I still need to find out if there's a precise event that fires only when the agent is fully connected.
I like this approach because:
* It's fully automated.
* No agent involvement is needed.
* It scales well. Avoids human error.
I need to watch out for:
* Timing. The workflow must run after the agent is truly connected.
* Transfers or conferences may add complexity.
### Option 2. Agent Script Button
The other approach is to shift the trigger to the agent.
Once they're connected they click a button in the script that runs:
* JWT generation
* People lookup
* Incident creation
* Incident assignment
I think it's simple and avoids the " agent" issue entirely because the agent triggers it only when they're actually handling the call.
It introduces human dependency. Agents may forget, click too early or click multiple times.
I like this approach because:
* It's very accurate.
* Easy to control and troubleshoot.
* No need to parse conversation logs.
The downside is:
* It relies on agent behavior.
* Not ideal, for high-volume environments.
------------------------------
Suryavesh Sahani
Original Message:
Sent: 04-10-2026 05:45
From: Phaneendra Avatapalli
Subject: Best approach for assigning incidents to final agent (Workflow vs Script)?
Hi everyone,
I'm currently working on a Genesys Cloud + BMC Helix integration for incident creation and assignment, and wanted to sanity check the best approach.
I've got incident creation and assignment working end-to-end, but I'm running into a couple of edge cases with the current design:
- if a customer abandons while waiting in queue, the ticket gets created but is not assigned to anyone
- if an agent does not answer and the call reroutes, the ticket still gets created and gets assigned to first agent who missed the call.
I'm looking at two options:
Option 1 – Workflow-based
I'm planning to use a trigger/workflow and identify the final agent who handled the interaction before creating and assigning the incident.
The idea is to call the Conversation API, filter participants where purpose="agent" and the message state is connected, return the matching agent list, and then take the last agent using:
GetAt(agentNames, Count(agentNames) - 1)
At the moment this is more of a design idea I'm exploring, so I'd be interested to know whether this is a reliable pattern, and also whether there is a better API/event to identify when an agent is actually fully connected to the interaction.
Option 2 – Agent Script button
Alternatively, I'm thinking of moving this into an Agent Script button, where the agent clicks once connected and the process runs from there. My understanding is that Scripts can execute data actions, custom script actions can chain multiple steps, and Function data actions can also be called from Scripts. So the idea would be something like: JWT → People Lookup → create incident → assign incident.
Just wanted to ask:
- Has anyone implemented either of these approaches successfully?
- Is using the last connected agent from the Conversation API a reliable pattern?
- Is there a better way to detect when the agent is truly connected?
- Can this be done cleanly from Agent Script buttons using data actions or function data actions.
Would appreciate any advice or real-world experience.
#ArchitectandDesign
------------------------------
Phaneendra
Technical Solutions Consultant
------------------------------