ReportCall working in Template Generator but not when applied to server

Status
Not open for further replies.

mattgbt

Forum User
Joined
Oct 10, 2019
Messages
3
Reaction score
0
Hello,

My CRM integration is working if I run "Report Call" from the Template Generator but if I apply the template to my server, it doesn't work. I also restarted the service "3CX PhoneSystem 01 System Server". How can I troubleshoot from here?


Code:
<?xml version="1.0"?>
<Crm xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Country="US" Name="RepairShopr" Version="1">
  <Number Prefix="Off" MaxLength="10" />
  <Connection MaxConcurrentRequests="2" />
  <Parameters>
    <Parameter Name="APIkey" Type="String" Parent="General Configuration" Editor="String" Title="API Key:" />
    <Parameter Name="ReportCallEnabled" Type="Boolean" Editor="String" Title="Enable Call Journaling" Default="True" />
    <Parameter Name="Domain" Type="String" Editor="String" Title="Domain:" />
  </Parameters>
  <Authentication Type="Basic">
    <Value>[APIkey]:X</Value>
  </Authentication>
  <Scenarios>
    <Scenario Id="" Type="REST">
      <Request SkipIf="" Url="https://[Domain].repairshopr.com/api/v1/customers?query=[Number]&amp;api_key=[APIkey]" MessagePasses="1" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
      <Rules>
        <Rule Type="Number">customers.phone</Rule>
      </Rules>
      <Variables>
        <Variable Name="ContactID" Path="customers.id">
          <Filter />
        </Variable>
        <Variable Name="FirstName" Path="customers.firstname">
          <Filter />
        </Variable>
        <Variable Name="LastName" Path="customers.lastname">
          <Filter />
        </Variable>
        <Variable Name="CompanyName" Path="customers.business_name">
          <Filter />
        </Variable>
        <Variable Name="Email" Path="customers.email">
          <Filter />
        </Variable>
        <Variable Name="PhoneBusiness" Path="customers.phone">
          <Filter />
        </Variable>
        <Variable Name="PhoneMobile" Path="customers.mobile">
          <Filter />
        </Variable>
      </Variables>
      <Outputs Next="" AllowEmpty="false">
        <Output Type="ContactID" Passes="1" Value="[ContactID]" />
        <Output Type="FirstName" Passes="1" Value="[FirstName]" />
        <Output Type="LastName" Passes="1" Value="[LastName]" />
        <Output Type="CompanyName" Passes="1" Value="[CompanyName]" />
        <Output Type="Email" Passes="1" Value="[Email]" />
        <Output Type="PhoneBusiness" Passes="1" Value="[PhoneBusiness]" />
        <Output Type="PhoneMobile" Passes="1" Value="[PhoneMobile]" />
        <Output Type="ContactUrl" Passes="1" Value="https://[Domain].repairshopr.com/customers/[ContactID]" />
      </Outputs>
    </Scenario>
    <Scenario Id="ReportCall" Type="REST">
      <Request SkipIf="[ReportCallEnabled]!=True||[CallType]!=Inbound" Url="https://[Domain].repairshopr.com/api/callerid.json/?did=[Number]&amp;api_key=[APIkey]" MessagePasses="1" RequestContentType="application/x-www-form-urlencoded" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
      <Variables />
      <Outputs Next="ReportCallMissed" AllowEmpty="true" />
    </Scenario>
    <Scenario Id="ReportCallMissed" Type="REST">
      <Request SkipIf="[ReportCallEnabled]!=True||[CallType]!=Missed" Url="https://[Domain].repairshopr.com/api/callerid.json/?did=[Number]&amp;api_key=[APIkey]" MessagePasses="1" RequestContentType="application/x-www-form-urlencoded" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
      <Variables />
      <Outputs Next="ReportCallOutbound" AllowEmpty="true" />
    </Scenario>
    <Scenario Id="ReportCallOutbound" Type="REST">
      <Request SkipIf="[ReportCallEnabled]!=True||[CallType]!=Outbound" Url="https://[Domain].repairshopr.com/api/callerid.json/?did=[Number]&amp;outbound=true&amp;api_key=[APIkey]" MessagePasses="1" RequestContentType="application/x-www-form-urlencoded" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
      <Variables />
      <Outputs Next="ReportCallNotanswered" AllowEmpty="true" />
    </Scenario>
    <Scenario Id="ReportCallNotanswered" Type="REST">
      <Request SkipIf="[ReportCallEnabled]!=True||[CallType]!=Notanswered" Url="https://[Domain].repairshopr.com/api/callerid.json/?did=[Number]&amp;outbound=true&amp;api_key=[APIkey]" MessagePasses="1" RequestContentType="application/x-www-form-urlencoded" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
      <Variables />
      <Outputs AllowEmpty="false" />
    </Scenario>
  </Scenarios>
</Crm>
 
Hello @mattgbt,

In order to troubleshoot this, please enable verbose logs from the 3CX Console > Dashboard > Activity Log > Settings. Then make a call and check the 3cxSystemService.log file, which will contain all the interactions between 3CX and your CRM.

Please note that it's important that the lookup scenario returns a valid contact, otherwise the call journaling is skipped.

Kind regards.
 
  • Like
Reactions: mattgbt
Hello
Please tell me. PBX behavior with unfamiliar contacts "Please note that it's important that the lookup scenario returns a valid contact, otherwise the call journaling is skippe". appeared recently in version 16? Or was this behavior with unfamiliar contacts already in version 15.5? We also had a problem integrating CRM 1C after upgrading to version 16.
 
Hello @VadGor,

Please tell me. PBX behavior with unfamiliar contacts "Please note that it's important that the lookup scenario returns a valid contact, otherwise the call journaling is skippe". appeared recently in version 16? Or was this behavior with unfamiliar contacts already in version 15.5? We also had a problem integrating CRM 1C after upgrading to version 16.
This is something that was added in v16. The call journaling functionality in v15.5 was very limited, and you didn't have the information of the calling contact. In v16 the call journaling functionality has been significantly improved, and now you can access information returned by the contact lookup. This way, when you create the call activity in your CRM, you can specify the endpoints of the call (this was not possible in v15.5). So the call activity is created bound to the agent that receives the call, and the contact that called you. As a result, when you see the call activity, you know who called, and which agent answered the call.
 
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
112,324
Messages
591,897
Members
165,475
Latest member
lastshadow