Skip to main content

Webhooks

Webhooks allow your campaigns to send real-time notifications to external systems when call events occur. Use webhooks to integrate with CRMs, trigger workflows, update databases, or connect to any HTTP endpoint.

How Webhooks Work

  1. You register a webhook endpoint (your server URL)
  2. You enable webhooks on a campaign and select which events to send
  3. When a call event occurs, EolasFlow sends a POST request to your endpoint
  4. Your server processes the data and responds with a 2xx status code

Webhook Events

EolasFlow can notify you about these call events:
EventDescription
call.initiatedCall request created, dialing started
call.ringingDestination phone is ringing
call.answeredCall was answered
call.in_progressActive conversation is happening
call.completedCall ended successfully
call.failedCall failed to connect
call.no_answerNo one answered the call
call.busyLine was busy
call.cancelledCall was cancelled before connecting
call.voicemailCall went to voicemail
The call.completed event includes the full transcript, recording URL, and call duration—ideal for post-call processing.

Setting Up Webhooks

Step 1: Register a Webhook Endpoint

First, register your server’s webhook URL:
1

Navigate to Integrations

Go to Dashboard → Integrations → Webhooks.
2

Add New Endpoint

Click Add Endpoint and enter:
  • Name: A descriptive name (e.g., “CRM Integration”)
  • URL: Your webhook endpoint URL
3

Configure Authentication

Choose how to authenticate requests to your server:
  • None: No authentication
  • Bearer Token: Authorization header with Bearer token
  • API Key (Header): Custom header with API key
  • API Key (Query): API key as URL parameter
  • Basic Auth: HTTP Basic authentication
  • Custom Header: Custom header name and value
4

Optional: Add Signing Secret

Add a signing secret to verify webhook payloads using HMAC-SHA256.
5

Test Connection

Click Test to verify your endpoint is reachable.
6

Save

Click Save to register the endpoint.

Step 2: Enable Webhooks on a Campaign

1

Open Campaign Settings

Go to Dashboard → Campaigns and click on your campaign.
2

Navigate to Webhooks Tab

Click the Webhooks tab in campaign settings.
3

Enable Webhooks

Toggle webhooks On and select your registered endpoint.
4

Select Events

Choose which events should trigger webhooks.
5

Add Custom Fields (Optional)

Add custom key-value pairs to include in every webhook payload.
6

Save Configuration

Click Save to activate webhooks for this campaign.

Webhook Payload

When an event occurs, EolasFlow sends a POST request with this JSON structure:
{
  "event": "call.completed",
  "call_id": "CA1234567890abcdef",
  "campaign_id": "uuid-of-campaign",
  "timestamp": "2024-01-15T14:30:00Z",
  "webhook_id": "unique-webhook-id",
  "idempotency_key": "unique-key-for-dedup",
  "customer": {
    "name": "John Smith",
    "phone": "+15551234567",
    "email": "[email protected]"
  },
  "call_data": {
    "duration_seconds": 180,
    "status": "completed",
    "recording_url": "https://...",
    "transcript": "Agent: Hello... Customer: Hi...",
    "summary": "Customer interested in product demo"
  },
  "custom_fields": {
    "your_field": "your_value"
  }
}

Authentication Options

Bearer Token

Your token is sent in the Authorization header:
Authorization: Bearer your-token-here

API Key Header

Your API key is sent in a custom header:
X-API-Key: your-api-key

Signing Secret (HMAC-SHA256)

When you configure a signing secret, EolasFlow includes a signature header:
X-Webhook-Signature: sha256=abc123...
Verify the signature on your server:
import hmac
import hashlib

def verify_signature(payload, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload.encode(),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Retry Logic

If your endpoint returns an error (non-2xx status), EolasFlow automatically retries:
  • Max Retries: 3 attempts
  • Initial Delay: 5 seconds
  • Backoff: Exponential (5s, 10s, 20s)
To prevent duplicate processing, use the idempotency_key field to identify duplicate webhook deliveries.

Monitoring Webhooks

View Webhook Logs

  1. Go to Dashboard → Campaigns → [Your Campaign] → Webhooks
  2. Click the Logs tab
  3. View execution history with status, timing, and response data

Filter Logs

Filter webhook logs by:
  • Event type
  • Success/failure status
  • Date range
  • Specific call

Resend a Webhook

If a webhook failed and you’ve fixed the issue:
  1. Find the failed webhook in the logs
  2. Click Resend
  3. The webhook is re-sent with the original payload

Testing Webhooks

Test Endpoint Connectivity

Before using a webhook endpoint:
  1. Go to Dashboard → Integrations → Webhooks
  2. Click Test on your endpoint
  3. Verify the test request succeeds

Send Test Webhook from Campaign

  1. Go to Campaign → Webhooks
  2. Click Send Test Webhook
  3. A sample payload is sent to your endpoint

Best Practices

Respond Quickly: Return a 2xx response within 30 seconds. Do heavy processing asynchronously.
Use Signing Secrets: Verify webhook authenticity to prevent spoofing.
Handle Duplicates: Use the idempotency_key to detect and ignore duplicate deliveries.
Log Everything: Keep logs of received webhooks for debugging.
Secure Your Endpoint: Validate signatures, use HTTPS, and implement rate limiting.

Common Use Cases

Use CaseEvents to Subscribe
Update CRM after callcall.completed
Real-time dashboardAll events
Trigger follow-up workflowcall.completed, call.voicemail
Alert on failurescall.failed
Track call outcomescall.completed

Troubleshooting

Webhooks Not Arriving

  1. Check that webhooks are enabled on the campaign
  2. Verify the endpoint URL is correct and accessible
  3. Check your server logs for incoming requests
  4. Review webhook logs for error messages

Authentication Failures

  1. Verify your token/API key is correct
  2. Check the header name matches your server’s expectations
  3. Ensure your server is checking the right header

Timeouts

If webhooks are timing out:
  • Reduce processing time in your webhook handler
  • Process asynchronously and return 200 immediately
  • Increase timeout in endpoint settings (max 120 seconds)

Build Your Own Workflows

Want to connect EolasFlow to any tool of your choice? Use automation platforms like n8n, Zapier, or Make to create custom webhook endpoints.

n8n

Self-hosted, open-source automation

Zapier

5000+ app integrations

Make

Visual workflow builder
With these tools you can:
  • Send call data to any CRM (Salesforce, HubSpot, Pipedrive, etc.)
  • Trigger Slack/Teams notifications
  • Update Google Sheets or databases
  • Send automated follow-up emails
  • Connect to any API or service

Automation Workflows Guide

Learn how to build custom integrations with n8n, Zapier, and more

Next Steps