Create tickets only for calls from a specific queue

Kinneas

Platinum Partner
Joined
Jun 28, 2022
Messages
1
Reaction score
0
Hello everyone,

I'm trying to customize the 3CX ZendeskV2 CRM integration for one of our customers running 3CX V20.

What we're trying to achieve​

We would like Zendesk tickets to be created only for incoming calls handled through queue 801, and not for calls coming through other queues, direct extensions, or outbound calls.

The standard Zendesk integration works correctly without any additional filtering.

What we've tried​

According to the official 3CX CRM template documentation, the QueueExtension variable should provide the extension number of the queue or ring group when a call reaches an agent through it.

We therefore modified the CreateCallActivity scenario in the ZendeskV2 XML template.

Attempt 1 – Adding the queue condition to the original SkipIf:

SkipIf="[ReportCallEnabled]!=True||[EntityId]==""||[QueueExtension]!=801"
Unfortunately, this generated the following error in 3CXSystemService.log:

System.InvalidCastException:
Unable to cast object of type 'System.String'
to type 'System.Boolean'.

at TcxLexicalParser.LexEvaluator.Or(...)
Attempt 2 – Simplifying the condition:

SkipIf="[EntityId]==""||[QueueExtension]!=801"
The previous exception no longer appears, but no Zendesk tickets are created anymore, even when an incoming call is answered through queue 801.

Questions​

  1. Is QueueExtension correctly populated and accessible in the CreateCallActivity scenario when an incoming call is answered through a queue?
  2. Is there a reliable way to log or inspect the actual value of QueueExtension during call reporting?
  3. Is filtering by queue using SkipIf the correct approach, or should the condition be applied elsewhere in the CRM template?
  4. Has anyone successfully implemented this type of filtering with ZendeskV2?
Any guidance, examples, or feedback from someone who has already implemented this would be greatly appreciated.

Thanks in advance for your help!
 
Hello everyone,

I'm trying to customize the 3CX ZendeskV2 CRM integration for one of our customers running 3CX V20.

What we're trying to achieve​

We would like Zendesk tickets to be created only for incoming calls handled through queue 801, and not for calls coming through other queues, direct extensions, or outbound calls.

The standard Zendesk integration works correctly without any additional filtering.

What we've tried​

According to the official 3CX CRM template documentation, the QueueExtension variable should provide the extension number of the queue or ring group when a call reaches an agent through it.

We therefore modified the CreateCallActivity scenario in the ZendeskV2 XML template.

Attempt 1 – Adding the queue condition to the original SkipIf:

SkipIf="[ReportCallEnabled]!=True||[EntityId]==""||[QueueExtension]!=801"
Unfortunately, this generated the following error in 3CXSystemService.log:

System.InvalidCastException:
Unable to cast object of type 'System.String'
to type 'System.Boolean'.

at TcxLexicalParser.LexEvaluator.Or(...)
Attempt 2 – Simplifying the condition:

SkipIf="[EntityId]==""||[QueueExtension]!=801"
The previous exception no longer appears, but no Zendesk tickets are created anymore, even when an incoming call is answered through queue 801.

Questions​

  1. Is QueueExtension correctly populated and accessible in the CreateCallActivity scenario when an incoming call is answered through a queue?
  2. Is there a reliable way to log or inspect the actual value of QueueExtension during call reporting?
  3. Is filtering by queue using SkipIf the correct approach, or should the condition be applied elsewhere in the CRM template?
  4. Has anyone successfully implemented this type of filtering with ZendeskV2?
Any guidance, examples, or feedback from someone who has already implemented this would be greatly appreciated.

Thanks in advance for your help!
We do this kind of things all the time. It's probably how your SkipIf is written. Try this: "[IIf([ReportCallEnabled]!=True,[IIf([EntityId]=="",[QueueExtension]!="801",False)],False)]"
 
The expression proposed by @Evolute IT will do the trick. To provide more details on this, you can't use || as an OR expression, that is not supported, that's why you need those nested IIF.
 
  • Like
Reactions: Evolute IT

Forum statistics

Threads
112,271
Messages
591,607
Members
165,384
Latest member
Testcbl