SMS Webhooks and API: Build Custom Integrations
SMS Webhooks and API: Build Custom Integrations
JustCall provides webhooks and API endpoints for SMS, so you can build custom integrations that go beyond the built-in CRM connectors. Receive real-time event notifications, send messages programmatically, and sync SMS data with your own systems.
Available on: Pro plan and above
SMS Webhooks
Webhooks push event data to your application in real time. When an SMS event occurs, JustCall sends an HTTP POST request to your configured endpoint.
Available webhook events
| Event | When it fires |
|---|---|
sms.received | Incoming SMS received on any JustCall number |
sms.sent | Outbound SMS sent by an agent or automation |
sms.delivered | Carrier confirms delivery to recipient |
sms.failed | Message delivery failed |
sms.optout | Recipient replied STOP |
sms.optin | Previously opted-out contact replied START |
Set up a webhook
- Go to Settings → Webhooks.
- Click Add Webhook.
- Enter your endpoint URL (must be HTTPS).
- Select the events you want to receive.
- Click Save.
JustCall sends a test ping to verify your endpoint is reachable.
Webhook payload
Each webhook POST includes:
{
"event": "sms.received",
"timestamp": "2026-03-12T14:30:00Z",
"data": {
"message_id": "msg_abc123",
"direction": "inbound",
"from": "+15125551234",
"to": "+15125550100",
"body": "Hi, I'd like to schedule an appointment",
"media_urls": [],
"justcall_number": "+15125550100",
"contact_name": "Sarah Chen",
"agent_id": null
}
}
Retry policy
If your endpoint returns a non-2xx status code, JustCall retries:
- 1st retry: 30 seconds
- 2nd retry: 5 minutes
- 3rd retry: 30 minutes
- After 3 failures: webhook is paused. Check Settings → Webhooks to reactivate.
SMS API
Send messages, retrieve conversations, and manage contacts programmatically.
Authentication
All API requests require your JustCall API key and secret:
Authorization: Bearer {api_key}:{api_secret}
Find your API credentials under Settings → API & Webhooks → API Keys.
Send an SMS
POST /api/v2/texts/new
Content-Type: application/json
{
"from": "+15125550100",
"to": "+15125551234",
"body": "Your appointment is confirmed for March 15 at 2 PM."
}
Retrieve conversations
GET /api/v2/texts/list?per_page=20&page=1
Get message details
GET /api/v2/texts/{message_id}
For the complete API reference, visit JustCall's developer documentation under Settings → API & Webhooks → Documentation.
Common Integration Patterns
| Pattern | How it works |
|---|---|
| Custom CRM logging | Webhook sms.received + sms.sent → POST to your CRM's API |
| Lead routing | Webhook sms.received → your app checks message content → assigns via JustCall API |
| Appointment confirmation | Webhook sms.received keyword "CONFIRM" → update your booking system |
| Analytics pipeline | All webhook events → your data warehouse for custom reporting |