> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# JustCall Webhook Setup Guide

> Configure JustCall to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](/connectors/justcall#getting-started) on the JustCall connector page.

<section data-guide-section data-guide-scopes="">
  <h2>How JustCall webhooks are set up</h2>

  <p>StackOne creates and manages the webhook subscription automatically when the account is connected, and removes it when the account is disconnected. There is nothing to configure in JustCall and no URL to paste.</p>

  <ul>
    <li>JustCall accepts one event type per webhook subscription, so StackOne registers one subscription for each event you enable.</li>
    <li>Subscriptions are account-wide and cover every user and phone number on the JustCall account.</li>
    <li>Each subscription appears in JustCall under <strong>APIs and Webhooks</strong> with the StackOne callback URL.</li>
  </ul>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Available webhook events</h2>

  <p>The following JustCall events can be enabled. Only events selected in StackOne are subscribed and delivered. JustCall does not send events that have no subscription.</p>

  <Steps>
    <Step title="Call events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on calls made or received through JustCall.</p>

        <ul>
          <li><strong>Call Incoming</strong> (`call.incoming`) — Fired when an incoming call starts ringing.</li>
          <li><strong>Call Initiated</strong> (`call.initiated`) — Fired when an outgoing call is initiated.</li>
          <li><strong>Call Answered</strong> (`call.answered`) — Fired when a call is answered.</li>
          <li><strong>Call Enters Queue</strong> (`call.enters_queue`) — Fired when a call enters a call queue.</li>
          <li><strong>Call Exits Queue</strong> (`call.exits_queue`) — Fired when a call leaves a call queue.</li>
          <li><strong>Call Completed</strong> (`call.completed`) — Fired when a call ends.</li>
          <li><strong>Call Missed</strong> (`call.missed`) — Fired when a call is missed.</li>
          <li><strong>Call Voicemail</strong> (`call.voicemail`) — Fired when a caller leaves a voicemail.</li>
          <li><strong>Call Updated</strong> (`call.updated`) — Fired when fields on an existing call are updated. The payload contains only the call ID and the changed fields.</li>
          <li><strong>Call AI Generated</strong> (`jc.call_ai_generated`) — Fired when JustCall AI finishes generating insights for a call.</li>
        </ul>
      </div>
    </Step>

    <Step title="AI voice agent events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on calls handled by a JustCall AI voice agent.</p>

        <ul>
          <li><strong>Call AI Voice Agent</strong> (`call.ai_voice_agent`) — Fired when an AI voice agent executes actions on a call.</li>
        </ul>
      </div>
    </Step>

    <Step title="SMS events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on text messages.</p>

        <ul>
          <li><strong>SMS Sent or Received</strong> (`sms.sent_received`) — Fired when an SMS is sent or received.</li>
          <li><strong>SMS Sent</strong> (`sms.sent`) — Fired when an SMS is sent.</li>
          <li><strong>SMS Received</strong> (`sms.received`) — Fired when an SMS is received.</li>
          <li><strong>SMS Status Updated</strong> (`sms.status_updated`) — Fired when the delivery status of an SMS changes.</li>
        </ul>
      </div>
    </Step>

    <Step title="WhatsApp events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on WhatsApp messages.</p>

        <ul>
          <li><strong>WhatsApp Message Sent</strong> (`whatsapp.message_sent`) — Fired when a WhatsApp message is sent.</li>
          <li><strong>WhatsApp Message Received</strong> (`whatsapp.message_received`) — Fired when a WhatsApp message is received.</li>
          <li><strong>WhatsApp Message Status Updated</strong> (`whatsapp.message_status_updated`) — Fired when the delivery status of a WhatsApp message changes.</li>
        </ul>
      </div>
    </Step>

    <Step title="Sales Dialer events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on Sales Dialer campaign calls (Pro plan or above).</p>

        <ul>
          <li><strong>Sales Dialer Call Completed</strong> (`sd.call_completed`) — Fired when a Sales Dialer campaign call ends.</li>
          <li><strong>Sales Dialer Call Updated</strong> (`sd.call_updated`) — Fired when fields on a Sales Dialer call are updated. The payload contains only the changed fields.</li>
          <li><strong>Sales Dialer Call AI Generated</strong> (`sd.call_ai_generated`) — Fired when JustCall AI finishes generating insights for a Sales Dialer call.</li>
        </ul>
      </div>
    </Step>

    <Step title="Contact and appointment events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on contacts and scheduled appointments.</p>

        <ul>
          <li><strong>Contact Status Updated</strong> (`jc.contact_status_updated`) — Fired when a contact is added to or removed from the DND, DNM or Blacklist lists.</li>
          <li><strong>Appointment Scheduled</strong> (`appointment.scheduled`) — Fired when an appointment is booked on a JustCall calendar.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Delivery format</h2>

  <p>Details of how JustCall delivers events to StackOne.</p>

  <Steps>
    <Step title="One event per request">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>JustCall sends each event as its own HTTP POST with a JSON body containing `request_id`, `type` and the event `data`. Deliveries are not batched, may arrive more than once and are not guaranteed to be in order.</p>
      </div>
    </Step>

    <Step title="Retries and blacklisting">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>JustCall retries failed deliveries up to 5 times, 30 to 90 seconds apart. URLs that fail repeatedly are blacklisted and stop receiving events.</p>
      </div>
    </Step>

    <Step title="Signature">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>JustCall signs each delivery with an `x-justcall-signature` header, an HMAC-SHA256 of the webhook URL, event type and `x-justcall-request-timestamp` keyed with the account's API Secret.</p>
      </div>
    </Step>
  </Steps>
</section>

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.