Overview
For platforms that don't have a native DealOracle integration, you can use webhooks, Zapier, or Make.com (formerly Integromat) to connect virtually any tool to DealOracle.
When to Use Custom Integrations
- No native integration available — The platform you use isn't listed in DealOracle's integrations page.
- Custom workflow needs — You want to trigger specific actions based on DealOracle events (e.g., send a Slack notification when a deal closes).
- Multi-step automation — You need to chain together multiple tools (e.g., form submission → DealOracle → Google Sheets → email notification).
- Internal tools — You want to connect DealOracle to your own internal systems or databases.
Integration Options
| Method | Best For | Technical Skill Required |
|---|---|---|
| Zapier | No-code automation with 5,000+ apps | Low |
| Make.com | More complex, multi-step automations | Medium |
| Direct Webhook | Maximum control, custom backends | High |
Tip: Start with Zapier if you're not sure which method to use. It's the fastest way to get connected and requires no coding.
Zapier Setup
DealOracle works with Zapier as both a trigger (send data out) and an action (receive data in).
DealOracle as a Trigger (Send Data Out)
Use DealOracle as a trigger to send lead data to other apps when events happen:
Available triggers:
- New Lead — Fires when a new lead is created in DealOracle
- Disposition Changed — Fires when a lead's disposition is updated
- Deal Closed — Fires when a lead reaches "Closed Won" or "Closed Lost"
Example Zaps:
- New Lead in DealOracle → Add row to Google Sheets
- Disposition Changed to "Qualified" → Send Slack notification
- Deal Closed Won → Create invoice in QuickBooks
- New Lead → Add subscriber to Mailchimp
DealOracle as an Action (Receive Data In)
Use DealOracle as an action to create or update leads from other apps:
Available actions:
- Create Lead — Create a new lead in DealOracle
- Update Lead — Update an existing lead's fields or disposition
- Update Disposition — Change a lead's disposition status
Example Zaps:
- New Typeform submission → Create Lead in DealOracle
- New Calendly booking → Update Lead disposition to "Appointment Set"
- New Stripe payment → Update Lead disposition to "Closed Won" with deal value
Setting Up a Zap
- Go to zapier.com and create a new Zap
- Search for DealOracle in the app selector
- Choose your trigger or action
- Authenticate with your DealOracle API key (found in Settings → API)
- Map fields between the two apps
- Test and activate your Zap
Tip: Use Zapier's "Filter" step to only trigger for specific dispositions or lead sources. This prevents unnecessary Zap runs and saves on your Zapier plan limits.
Direct Webhook
For maximum control, you can send leads directly to DealOracle via HTTP POST requests to your ingest webhook URL.
Your Webhook URL
Find your webhook URL in Settings → Integrations → Webhooks:
POST https://api.dealoracle.com/v1/ingest/webhook/{your-client-id}
Authentication
Include your API key in the request header:
Authorization: Bearer {your-api-key}
Content-Type: application/json
Sending a Lead
Send a POST request with a JSON body containing the lead data:
{
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"phone": "+15551234567",
"source": "website",
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "spring-sale",
"utm_content": "ad-variant-a",
"utm_term": "buy widgets",
"gclid": "CjwKCAjw...",
"landing_page": "https://example.com/offer",
"custom_fields": {
"company": "Acme Corp",
"industry": "Technology",
"deal_value": 5000
}
}
Response
A successful request returns:
{
"success": true,
"lead_id": "abc123-def456-ghi789",
"message": "Lead created successfully"
}
Common error responses:
| Status Code | Meaning |
|---|---|
200 | Success |
400 | Bad request (missing required fields) |
401 | Unauthorized (invalid API key) |
409 | Conflict (duplicate lead, existing lead updated) |
429 | Rate limited (too many requests) |
500 | Server error |
Rate limits: The webhook endpoint accepts up to 100 requests per second per client. Contact support if you need higher limits.
Webhook Payload Reference
Required Fields
At minimum, each webhook request must include at least one of the following identifiers:
| Field | Type | Description |
|---|---|---|
email | string | Lead's email address |
phone | string | Lead's phone number (E.164 format preferred) |
Recommended Fields
These fields are strongly recommended for best results:
| Field | Type | Description |
|---|---|---|
first_name | string | Lead's first name |
last_name | string | Lead's last name |
source | string | Lead source identifier |
utm_source | string | UTM source parameter |
utm_medium | string | UTM medium parameter |
utm_campaign | string | UTM campaign parameter |
Optional Fields
| Field | Type | Description |
|---|---|---|
utm_content | string | UTM content parameter |
utm_term | string | UTM term parameter |
gclid | string | Google Ads click ID |
fbclid | string | Facebook click ID |
ttclid | string | TikTok click ID |
msclkid | string | Microsoft Ads click ID |
landing_page | string | URL of the landing page |
referrer | string | Referring URL |
ip_address | string | Lead's IP address |
user_agent | string | Browser user agent string |
custom_fields | object | Key-value pairs for custom data |
tags | array | Array of string tags to apply |
disposition | string | Initial disposition (defaults to "New Lead") |
deal_value | number | Monetary value of the lead/deal |
Full Example Payload
{
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"phone": "+15559876543",
"source": "landing-page",
"utm_source": "facebook",
"utm_medium": "paid-social",
"utm_campaign": "q1-2026-promo",
"utm_content": "video-ad-1",
"fbclid": "fb.1.1234567890.abcdef",
"landing_page": "https://example.com/offer-page",
"referrer": "https://facebook.com",
"ip_address": "203.0.113.42",
"tags": ["high-intent", "facebook-lead"],
"deal_value": 2500,
"custom_fields": {
"company": "Example Inc",
"job_title": "Marketing Director",
"industry": "SaaS",
"company_size": "50-200"
}
}
Testing Your Webhook
Use curl to test your webhook from the command line:
curl -X POST https://api.dealoracle.com/v1/ingest/webhook/{your-client-id} \
-H "Authorization: Bearer {your-api-key}" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Test",
"last_name": "User",
"email": "[email protected]",
"phone": "+15551234567",
"source": "api-test"
}'
Or use tools like Postman, Insomnia, or HTTPie for a graphical interface.
Need help? Contact DealOracle support at [email protected] or use the in-app chat.
