Variables available for ContactURL?

Scrappy

Customer
Joined
Jan 18, 2026
Messages
7
Reaction score
1
Note: am happy with just a pointer to whichever doc it is that I haven't found yet ... but is there a list of valid variables available to be used in the ContactURL?

I'm doing a custom template that does almost everything i want it to do, included below ...

I call in, the First/Lastname gets populated into the 'dial window', and when I answer, I get the pop up ... caller gets filled in right, but called comes out blank ... so that variable isn't useful ... although, looking more closely, the URL in the pop up isn't what I have below:


Is there a way to setup ContactURL to send both of those values to the PopUp?

And, while I'm here ... is there a way to have the PopUp happen "On Ring' instead of "On Answer"? And again, if its something that I should have found in the docs and didn't, happy with just a pointer to what I missed ...

Thanks ...


<?xml version="1.0" encoding="utf-8"?>
<Crm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Country="US" Name="PrivaraCRM" Version="40" SupportsEmojis="true" SupportsTranscription="true" ListPageSize="0">
<Number Prefix="AsIs" MaxLength="11" />
<Connection MaxConcurrentRequests="2" />
<Parameters />
<Authentication Type="No" />
<Scenarios>
<Scenario Id="" Type="REST" EntityId="" EntityOrder="">
<Request SkipIf="" Url="https://crm.myurl.com/api/3cx-search?number=[Number]" MessagePasses="0" Message="" RequestContentType="" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
<Rules>
<Rule Type="Any" Ethalon="">id</Rule>
</Rules>
<Variables>
<Variable Name="ContactID" LookupValue="" Path="id"><Filter /></Variable>
<Variable Name="FirstName" LookupValue="" Path="firstname"><Filter /></Variable>
<Variable Name="LastName" LookupValue="" Path="lastname"><Filter /></Variable>
<Variable Name="PhoneMobile" LookupValue="" Path="phone"><Filter /></Variable>
</Variables>
<Outputs AllowEmpty="false">
<Output Type="ContactID" Passes="0" Value="[ContactID]" />
<Output Type="FirstName" Passes="0" Value="[FirstName]" />
<Output Type="LastName" Passes="0" Value="[LastName]" />
<Output Type="PhoneMobile" Passes="0" Value="[PhoneMobile]" />
<Output Type="ContactUrl" Passes="0" Value="https://crm.myurl.com/call-popup?caller=[Number]&amp;amp;called=[CalledNumber]" />
<Output Type="EntityId" Passes="0" Value="[ContactID]" />
<Output Type="EntityType" Passes="0" Value="Contacts" />
</Outputs>
</Scenario>
</Scenarios>
</Crm>
 
Have you also checked this guideline?
 
At least a dozen times ... the only thing I'm finding in there references the CallerID ( [Number] ), but nothing about the line/did that was called ...

I did find, in my searches, references to session.did as far as call flow was concerned ... was hoping there was some way of getting that into a Variable within the template that could be used ...
 
The only supported variables are:

  • %CallerNumber% which will contain the incoming caller ID.
  • %CallerDisplayName% which will contain incoming display names
which also apply to the custom Url in the web client.
 
  • Like
Reactions: Evolute IT
When you build the URL from the CRM XML template, the variables you can use are listed here:
https://www.3cx.com/docs/crm-template-xml-description/#h.vcivldjsa1lz

This contact lookup is triggered when the call arrives to 3CX, but before it is sent to the agent. So you have the caller's number available in the [Number] variable, but the agent's extension is not available at this point. In this case, you can't add more variables on the Web Client side. This URL is built on the server and can't be changed.

If you don't use a CRM template, you can use a custom URL on the Web Client side, and include the caller's number and display name, as @TheodorosG_3CX just mentioned. As this is a client side setting, you can hardcode the agent's extension in this URL. You will need to configure a different value on each agent's PC.
 
  • Like
Reactions: TheodorosG_3CX
BTW, the session.did variable that you also mention is only available in a CFD app. But this is the number dialed by the customer, not the agent's extension.
 
  • Like
Reactions: Evolute IT
BTW, the session.did variable that you also mention is only available in a CFD app. But this is the number dialed by the customer, not the agent's extension.

Right, that's what I want ... the number dialed by customer ...

What I'm *trying* to accomplish ( and fear isn't possible ) is to have two different numbers linked into the system, one assigned / owned by two different businesses ...

On the agent's screen, I want a pop up that not only tells me who called, but also which line / business they called into ... so that its possible to customize the greeting "Hello, thanks for calling business XYZ" ... I don't care who answered the call ... and that session.did value is ( obviously ) known well before who answered the call is known, which is why I hoped it would somehow be available to that URL :(
 
Right, that's what I want ... the number dialed by customer ...

What I'm *trying* to accomplish ( and fear isn't possible ) is to have two different numbers linked into the system, one assigned / owned by two different businesses ...

On the agent's screen, I want a pop up that not only tells me who called, but also which line / business they called into ... so that its possible to customize the greeting "Hello, thanks for calling business XYZ" ... I don't care who answered the call ... and that session.did value is ( obviously ) known well before who answered the call is known, which is why I hoped it would somehow be available to that URL :(
Name the DID? This way it appears in the call view for the agent.
 

Forum statistics

Threads
111,969
Messages
590,050
Members
164,883
Latest member
3sCXuser