Not Sending Data to Webhook

myEasytek

Silver Partner
Basic Certified
Joined
Dec 26, 2021
Messages
1
Reaction score
0
When I use Postman to send a JSON payload to a webhook it works, but when I use a 3CX template, it does not work. I expect something is wrong with my template. Can anyone please tell me why this would not be sending data to the webhook URL? To test it, I am placing a live outbound call, answering it, and terminating it. I would expect the HTTP POST to the webhook to be sent immediately after.

Call journaling enabled in the integration tab enabled, 4SC Proffessional Annual License, v20 Update 5.

XML:
<?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="njfv3" Version="1" SupportsEmojis="true" SupportsTranscription="true" ListPageSize="0">
  <Number Prefix="AsIs" MaxLength="[MaxLength]" />
  <Connection MaxConcurrentRequests="2" />
  <Parameters>
    <Parameter Name="ReportCallEnabled" Type="Boolean" Parent="" Editor="String" Title="Enable Call Journaling" Validation="" Default="True" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="Subject" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Call Subject:" Validation="" Default="3CX PhoneSystem Call" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="InboundCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Answered Inbound Call:" Validation="" Default="[DateTime]: Answered incoming call from [Number] to [Agent] ([Duration])" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="MissedCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Missed Call:" Validation="" Default="[DateTime]: Missed call from [Number] to [Agent]" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="OutboundCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Answered Outbound Call:" Validation="" Default="[DateTime]: Answered outgoing call from [Agent] to [Number] ([Duration])" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="NotAnsweredOutboundCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Unanswered Outbound Call:" Validation="" Default="[DateTime]: Unanswered outgoing call from [Agent] to [Number]" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
  </Parameters>
  <Authentication Type="No" />
  <Scenarios>
    <Scenario Id="ReportCall" Type="REST" EntityId="" EntityOrder="">
      <Request SkipIf="[IIf([ReportCallEnabled]!=True]" Url="https://services.leadconnectorhq.com/hooks/rHmr80Us1OkVg7rJ3k6f/webhook-trigger/removedforprivacy" MessagePasses="0" Message="" RequestContentType="application/json" RequestEncoding="Json" RequestType="Post" ResponseType="Json">
        <PostValues Key="" If="" SkipIf="">
          <Value Key="direction" If="" SkipIf="" Passes="1" Type="String">[CallDirection]</Value>
          <Value Key="date" If="" SkipIf="" Passes="1" Type="String">[CallStartTimeLocal]</Value>
          <Value Key="ext-number" If="" SkipIf="" Passes="1" Type="String">[Number]</Value>
          <Value Key="call-status" If="" SkipIf="" Passes="1" Type="String">[CallType]</Value>
        </PostValues>
      </Request>
      <Variables />
      <Outputs AllowEmpty="true" />
    </Scenario>
  </Scenarios>
</Crm>
 
Hmm that should work. Enable verbose logging, do a few test calls and download the Support Info package. Inside the logs folder, check the 3cxSystemService.log for exceptions. Search for "CRM:" to get the lines about the integration.
 
When I use Postman to send a JSON payload to a webhook it works, but when I use a 3CX template, it does not work. I expect something is wrong with my template. Can anyone please tell me why this would not be sending data to the webhook URL? To test it, I am placing a live outbound call, answering it, and terminating it. I would expect the HTTP POST to the webhook to be sent immediately after.

Call journaling enabled in the integration tab enabled, 4SC Proffessional Annual License, v20 Update 5.

XML:
<?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="njfv3" Version="1" SupportsEmojis="true" SupportsTranscription="true" ListPageSize="0">
  <Number Prefix="AsIs" MaxLength="[MaxLength]" />
  <Connection MaxConcurrentRequests="2" />
  <Parameters>
    <Parameter Name="ReportCallEnabled" Type="Boolean" Parent="" Editor="String" Title="Enable Call Journaling" Validation="" Default="True" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="Subject" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Call Subject:" Validation="" Default="3CX PhoneSystem Call" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="InboundCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Answered Inbound Call:" Validation="" Default="[DateTime]: Answered incoming call from [Number] to [Agent] ([Duration])" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="MissedCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Missed Call:" Validation="" Default="[DateTime]: Missed call from [Number] to [Agent]" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="OutboundCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Answered Outbound Call:" Validation="" Default="[DateTime]: Answered outgoing call from [Agent] to [Number] ([Duration])" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
    <Parameter Name="NotAnsweredOutboundCallText" Type="String" Parent="ReportCallEnabled" Editor="String" Title="Unanswered Outbound Call:" Validation="" Default="[DateTime]: Unanswered outgoing call from [Agent] to [Number]" ListValues="" RequestUrl="" RequestUrlParameters="" ResponseScenario="" />
  </Parameters>
  <Authentication Type="No" />
  <Scenarios>
    <Scenario Id="ReportCall" Type="REST" EntityId="" EntityOrder="">
      <Request SkipIf="[IIf([ReportCallEnabled]!=True]" Url="https://services.leadconnectorhq.com/hooks/rHmr80Us1OkVg7rJ3k6f/webhook-trigger/removedforprivacy" MessagePasses="0" Message="" RequestContentType="application/json" RequestEncoding="Json" RequestType="Post" ResponseType="Json">
        <PostValues Key="" If="" SkipIf="">
          <Value Key="direction" If="" SkipIf="" Passes="1" Type="String">[CallDirection]</Value>
          <Value Key="date" If="" SkipIf="" Passes="1" Type="String">[CallStartTimeLocal]</Value>
          <Value Key="ext-number" If="" SkipIf="" Passes="1" Type="String">[Number]</Value>
          <Value Key="call-status" If="" SkipIf="" Passes="1" Type="String">[CallType]</Value>
        </PostValues>
      </Request>
      <Variables />
      <Outputs AllowEmpty="true" />
    </Scenario>
  </Scenarios>
</Crm>
Is this your full template or just a snippet? I can only see a ReportCall scenario here, however 3CX will not invoke it if there is not a matching contact first. So you need a contact lookup scenario here.
 
  • Like
Reactions: Evolute IT

Forum statistics

Threads
112,320
Messages
591,865
Members
165,463
Latest member
ICTSupport@bedfordgirlssc