Back to DocsIntegrations

Custom Integrations (Zapier / Webhooks)

Build custom integrations using Zapier, Make.com, or direct webhooks.

Table of contents

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

MethodBest ForTechnical Skill Required
ZapierNo-code automation with 5,000+ appsLow
Make.comMore complex, multi-step automationsMedium
Direct WebhookMaximum control, custom backendsHigh

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

  1. Go to zapier.com and create a new Zap
  2. Search for DealOracle in the app selector
  3. Choose your trigger or action
  4. Authenticate with your DealOracle API key (found in Settings → API)
  5. Map fields between the two apps
  6. 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 CodeMeaning
200Success
400Bad request (missing required fields)
401Unauthorized (invalid API key)
409Conflict (duplicate lead, existing lead updated)
429Rate limited (too many requests)
500Server 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:

FieldTypeDescription
emailstringLead's email address
phonestringLead's phone number (E.164 format preferred)

These fields are strongly recommended for best results:

FieldTypeDescription
first_namestringLead's first name
last_namestringLead's last name
sourcestringLead source identifier
utm_sourcestringUTM source parameter
utm_mediumstringUTM medium parameter
utm_campaignstringUTM campaign parameter

Optional Fields

FieldTypeDescription
utm_contentstringUTM content parameter
utm_termstringUTM term parameter
gclidstringGoogle Ads click ID
fbclidstringFacebook click ID
ttclidstringTikTok click ID
msclkidstringMicrosoft Ads click ID
landing_pagestringURL of the landing page
referrerstringReferring URL
ip_addressstringLead's IP address
user_agentstringBrowser user agent string
custom_fieldsobjectKey-value pairs for custom data
tagsarrayArray of string tags to apply
dispositionstringInitial disposition (defaults to "New Lead")
deal_valuenumberMonetary 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.

#api#custom#integration#webhooks#zapier