Hi Ragheb,
For this specific requirement, I would recommend using Genesys Cloud Direct Routing rather than Preferred Agent Routing.
Your scenario is essentially a 1:1 customer-to-agent relationship: the Salesforce Account Owner should be the first and intended recipient, with a fallback queue when that agent cannot handle the interaction. Direct Routing is designed for this type of use case while keeping the call as an ACD interaction, so you retain queue behavior, reporting, wrap-up codes, and backup routing.
The architecture I would use is:
ANI
→ Salesforce Data Action
→ Find Account
→ Retrieve Account Owner
→ Resolve Account Owner to Genesys Cloud User
→ Transfer to ACD
→ Direct Agent = Account Owner
→ Fallback Queue when required
Identifying the Genesys Cloud user
The most deterministic approach is to maintain the Genesys Cloud User ID (UUID) for the corresponding Salesforce User.
For example, you could store it in a custom Salesforce User field:
GenesysCloudUserId__c
Your Data Action would then return that value to Architect.
In Architect, use Find User by Id to convert the returned UUID into a Genesys User value.
Conceptually:
Salesforce Account.Owner
→ Account.Owner.GenesysCloudUserId__c
→ Data Action output
→ Find User by Id
→ Genesys User
This avoids relying on attributes that may change over time.
If maintaining the Genesys UUID in Salesforce is not possible, another supported option is to return the Account Owner's email address and use Architect's Find User action. That works if the Salesforce and Genesys users share the same unique email address.
Routing the interaction
Once Architect has resolved the Genesys user, use Transfer to ACD.
Configure:
Queue = dedicated Direct Routing queue
and:
Direct Agent = resolved Account Owner
The Direct Agent is the specific Genesys user intended to receive the interaction and takes precedence over the normal queue routing method and Preferred Agents.
For this use case, I would use a queue dedicated to Direct Routing, which is also the pattern Genesys recommends for direct-routing interactions.
Handling the fallback requirements
For your voice scenario, configure the Direct Routing queue with:
Voice Alerting Timeout = 20 seconds
and configure the required Backup Queue under the queue's Direct Routing settings.
For the requirement to move directly to the fallback when the Account Owner cannot receive the call, enable the appropriate Assign to backup immediately behavior for the Direct Routing configuration.
I would also configure the queue with the Direct Routing In-Queue Call Flow pattern documented by Genesys so the backup behavior is handled according to the Direct Routing configuration.
The resulting behavior is:
Account Owner unavailable
→ Backup Queue
or:
Account Owner eligible
→ Alert Account Owner for 20 seconds
→ No answer
→ Agent becomes Not Responding
→ Backup Queue
Once the interaction reaches the backup queue, normal ACD routing for that queue takes over.
I would not check whether the agent is IDLE before transferring
I would avoid adding a Data Action that checks the Account Owner's current presence/status before the Transfer to ACD.
Genesys routing already evaluates whether the target user is eligible to receive the interaction.
A separate presence lookup can also introduce a race condition:
Check agent = available
→ another interaction reaches the agent
→ Architect performs the transfer
→ original availability result is already outdated
Direct Routing should therefore remain responsible for determining whether the Account Owner can receive the call and for applying the configured backup behavior.
Also note that Direct Routing can route to users who are On Queue, and it can also support eligible users who are Off Queue + Available when the appropriate Routing > Conversation > Accept Off-Queue permission is configured.
So my recommended design would be:
Inbound Call
→ ANI
→ Salesforce Data Action
→ Account
→ Account Owner
→ Genesys User UUID
→ Find User by Id
→ Transfer to ACD
→ Direct Routing Queue
→ Direct Agent = Account Owner
→ 20-second Voice Alerting Timeout
→ Direct Routing Backup Queue
If the Salesforce lookup does not return an Account Owner, the Genesys user cannot be resolved, or the mapping is invalid, Architect should bypass Direct Routing and send the interaction directly to the fallback queue.
For this requirement, I would choose Direct Routing over Preferred Agent Routing, because the business requirement is explicitly to target one specific Account Owner first and then use a separate backup queue when that owner cannot handle the interaction.
------------------------------
Gabriel
NA
------------------------------