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

# JustCall import

> Import completed JustCall calls into PyAI automatically: transcription, Recap summaries, and Trace scorecards for every call, verified and deduplicated. Live today.

The JustCall import brings every completed call into PyAI: the recording is
pulled through the authenticated JustCall API (never a webhook-supplied URL),
transcribed, summarized into a Recap record, and scored in Trace. Live today.

## What you need

* Your **JustCall API key and API secret**: JustCall dashboard → **Profile →
  APIs and Webhooks**. The API secret is also what JustCall signs webhooks
  with, so the current values matter (see Troubleshooting if the webhook
  validation fails).
* Two minutes in the JustCall dashboard for the webhook step.

## Connect

1. In PyAI Console, open **Integrations** and find **JustCall** under Phone
   providers.
2. Click **Connect** and paste the API key and secret. PyAI generates your
   personal webhook URL; press **Test connection** to verify the credentials
   (it calls JustCall's users endpoint).
3. Copy the webhook URL from the connection card.
4. In the JustCall dashboard, open **Profile → APIs and Webhooks → Webhook
   Settings** and add the URL to **Call completed in JustCall**. Save; the
   validation ping is answered automatically.
5. Calls import from then on. The card shows the last sync and last event.

## What lands per call

```
JustCall call.completed
  -> recording fetched via the authenticated JustCall API
  -> transcript (speaker-labeled)
  -> Recap summary + next steps
  -> Trace scorecard
```

Deliveries are verified against JustCall's signature scheme and deduplicated
on the provider call id, so JustCall's webhook retries are safe. Calls with a
JustCall transcript import it directly; others are transcribed by PyAI's Hear
pipeline.

## Troubleshooting

* **"Webhook URL is not accessible" in JustCall.** The dashboard's validation
  ping is signed with the account's current API secret, and PyAI verifies it
  against the stored secret. If they differ (rotated secret, or you connected
  a different account's credentials), the ping is rejected and JustCall shows
  this error. Copy the **current** API key and secret from the dashboard and
  update the connection, then save the webhook again.
* **Imported but no transcript.** The recording may still be processing at
  JustCall; the import retries the download automatically. If it persists,
  the connection card shows the last ingestion error.
* **Webhook rejected after disconnect.** By design: disconnecting deletes the
  connection and its token, so old URLs get 401. Reconnect to mint a fresh
  URL.
