Robotic case routing fails in process automation when using custom decision table

We’ve implemented robotic case routing in Pega 8.6 using a custom decision table to assign cases to different work queues based on case properties. The routing worked fine in dev, but after deploying to test, cases are failing to route and getting stuck in an unassigned state.

Our decision table evaluates three conditions: case priority, customer segment, and case type. The output should be a work queue name. Here’s a sample from the decision table:


IF Priority="High" AND Segment="Enterprise"
THEN WorkQueue="EnterpriseHighPriority"

The flow assignment configuration references this decision table, but in the tracer I’m seeing that the decision table returns an empty string for WorkQueue instead of the expected queue name. The conditions are evaluating correctly (I can see the property values match), but the output validation seems to fail silently.

I’ve verified work queue naming conventions match exactly between environments, and the queues exist in the test environment. Has anyone experienced decision table output issues with automated case routing? Is there something specific about flow assignment configuration that requires special handling for decision table results?

Have you checked the assignment shape’s configuration for how it interprets the decision table result? There’s a specific setting for “Use decision table result as” where you can choose between operator ID, work queue name, or work basket name. If this is set incorrectly, even a valid queue name will fail to route properly.

Also, robotic routing in Pega can be sensitive to timing - if your RPA bot is creating cases faster than the routing can process, you might hit concurrency issues that manifest as routing failures.

I ran into something similar last quarter. The issue was that my decision table was returning the queue name, but the assignment shape was looking for the queue’s full reference path. You need to either configure your decision table to return the complete reference (like “OrganizationName.QueueName”), or use a data transform after the decision table to construct the proper reference.

Another thing - check your work queue configuration in the test environment. Even if the queues exist, they might not be enabled or might have different organizational paths than in dev. Work queue naming conventions need to include the org structure.

This sounds like a data type mismatch issue. When decision tables return work queue names for routing, Pega expects specific formats. Are you returning just the queue name string, or the full queue reference? The assignment shape needs a proper operator ID or work queue reference, not just a string name.

Also check if your decision table has a default return value configured for when no conditions match. An empty string return could indicate no rows matched your conditions.

Good point about the format. I’m returning just the queue name as a string like “EnterpriseHighPriority”. Should I be returning it in a different format? The assignment shape is configured to use “Route to work queue” with the property value from the decision table result.

The tracer showing empty string is the key diagnostic clue here. This typically means your decision table is executing but returning null or empty because of how Pega handles decision table output validation. In 8.6, if the return property data type doesn’t match what the assignment expects, you get silent failures.

I’d recommend adding explicit logging in your decision table to see what’s actually being returned. Also verify that your decision table’s return property is configured as Text type, not something like WorkQueue object reference. The mismatch between expected and actual types causes this exact symptom.