LeadDuo – Service Business SoftwareLeadDuo

Third-Party Integrations

⚡ Instant. Secure. Reliable.

LeadDuo's integrations work seamlessly alongside AI features like AI Intelligence and SmartResponse, ensuring your CRM and productivity tools always receive enriched, AI-scored lead data in real time.

Jump to: Webhooks · Zapier · Slack · Notion · Airtable

Overview

✓ Available on Growth plan and above

Webhooks allow you to receive HTTP POST requests to a URL of your choice whenever a form is submitted. This enables real-time integration with your CRM, Slack, custom applications, and more.

Setup

1. Navigate to Form Settings

Select your form in the dashboard and click the Settings tab.

2. Enter Your Webhook URL

In the Integrations section, enter your endpoint URL in the Webhook URL field.

https://your-app.com/api/webhooks/leadduo

3. Set Webhook Secret (Recommended)

For security, we strongly recommend setting a Webhook Secret. This allows you to verify that requests are genuinely from LeadDuo.

LeadDuo webhooks integration interface showing endpoint configuration
Webhook ConfigurationConfigure webhook endpoints and secrets in your form settings

Payload Format

When a form is submitted, we'll send a POST request to your webhook URL with the following JSON payload:

{
  "event": "form.submission",
  "formId": "abc123",
  "formName": "Contact Form",
  "submissionId": 42,
  "fields": {
    "email": "user@example.com",
    "name": "John Doe",
    "message": "I'm interested in your services"
  },
  "submittedAt": "2024-01-15T10:30:00.000Z",
  "isSpam": false,
  "aiScore": 85,
  "aiTier": "hot",
  "aiQualified": true,
  "aiAnalysis": {
    "reasons": ["Business email", "Company provided", "Detailed message"],
    "confidence": "high"
  },
  "analytics": {
    "utm_source": "google",
    "utm_medium": "cpc",
    "utm_campaign": "spring_sale",
    "referrer": "https://google.com/search",
    "pageUrl": "https://example.com/contact",
    "userAgent": "Mozilla/5.0...",
    "language": "en-US",
    "timezone": "America/New_York",
    "screenSize": "1920x1080",
    "timeToSubmit": 45
  }
}

🤖 AI Intelligence Fields: If you have purchased the AI Intelligence add-on, the webhook payload will include aiScore (0-100), aiTier (hot/warm/cold), aiQualified (true/false), and aiAnalysis (reasons and confidence) fields. These fields will be null if AI Intelligence is not enabled.

📊 Analytics Data: LeadDuo automatically captures important attribution data including UTM parameters, referrer, page URL, device info, timezone, and time-to-submit. This analytics object is included in webhooks, Slack, and email notifications when enabled in your integration settings (enabled by default).

Security

When you set a Webhook Secret, each request will include an X-LeadDuo-Signature header.

Verifying the Signature

The signature is an HMAC SHA256 hash of the request body. Here's how to verify it:

Verification Code Examples

Choose your preferred language

const crypto = require('crypto');

function verifyWebhook(body, signature, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  hmac.update(JSON.stringify(body));
  const expectedSignature = hmac.digest('hex');
  
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expectedSignature)
  );
}

// Usage
const signature = req.headers['x-leadduo-signature'];
const isValid = verifyWebhook(req.body, signature, 'your-secret');

if (isValid) {
  console.log('Webhook verified!');
  // Process the webhook
} else {
  console.log('Invalid signature');
}

Best Practices

Respond within 10 seconds (we timeout after 10s)

Return a 200-299 status code to indicate success

Always verify the signature if you set a secret

Make your webhook endpoint idempotent (safe to receive the same request multiple times)

Use a queue for long-running tasks

Log and monitor for errors

Troubleshooting

Not receiving webhooks?

  • Verify your URL is correct and uses HTTPS
  • Ensure your endpoint is publicly accessible
  • Check that your firewall isn't blocking requests
  • Check your server logs for errors

Signature verification failing?

  • Ensure you're using the correct secret
  • Verify the raw request body without modifications
  • Check that JSON stringification matches

Zapier Integration

✓ Available on Growth plan and above

You can connect LeadDuo to Zapier using webhooks to integrate with 6,000+ apps.

🚀 Coming Soon: We're working on an official LeadDuo app for the Zapier marketplace. In the meantime, use webhooks with the steps below.

Setup Steps

  1. Create a new Zap in Zapier
  2. Choose "Webhooks by Zapier" as the trigger
  3. Select "Catch Hook"
  4. Copy the webhook URL from Zapier
  5. Paste into LeadDuo form settings → Webhook URL
  6. Test your form to send data to Zapier
  7. Add any actions in Zapier (Gmail, Slack, Google Sheets, etc.)

Popular Integration Examples

Gmail: Send an email for each new lead

Google Sheets: Add submissions to a spreadsheet

Slack: Post notifications to a channel

Salesforce: Create leads automatically

Airtable: Add records to your database

Slack Integration

✓ Available on Growth plan and above

Send LeadDuo form submissions directly to your Slack channels. Get your team notified of new leads in real-time so they can respond instantly.

💬 Setup Steps

  1. Create a new Incoming Webhook in your Slack workspace
  2. Choose the channel where you want to receive notifications
  3. Copy the Webhook URL from Slack
  4. Go to the Integrations tab in your LeadDuo dashboard
  5. Enable Slack integration and paste your Webhook URL
  6. Test the integration to verify the connection

✨ Key Features

Real-time notifications to Slack channels

Beautifully formatted messages with form name, submitter info, and all fields

Shows AI score and tier (if AI Intelligence enabled)

Analytics data including UTM parameters, referrer, and device info

Support for multiple Slack workspaces and channels

Spam-filtered - only genuine leads are sent

💡 Tip: You can send different forms to different Slack channels. Set up separate channels for sales leads, support requests, marketing inquiries, and more.

📝 How to Create an Incoming Webhook

  1. In your Slack workspace, go to api.slack.com/apps
  2. Click "Create New App" → "From scratch"
  3. Give it a name (e.g., LeadDuo) and select your workspace
  4. Click "Incoming Webhooks" and toggle it on
  5. Click "Add New Webhook to Workspace"
  6. Select the channel for notifications
  7. Copy the Webhook URL and paste it into LeadDuo

Notion Integration

✓ Available on Growth, Pro, and Pro+ plans

Send LeadDuo form submissions directly to your Notion databases. Perfect for managing leads, customer feedback, support tickets, and more.

📝 Setup Steps

  1. Create a new database in Notion or use an existing one
  2. Create a Notion integration and grant access to your database
  3. Go to the Integrations tab in your LeadDuo dashboard
  4. Enable Notion integration and enter your API key and database ID
  5. Map your form fields to Notion properties

✨ Key Features

Create records in Notion databases in real-time

Automatically map form fields to Notion properties

Support for text, email, phone, URL, date, and more

Connect to multiple Notion workspaces

💡 Tip: Your Notion database should have properties that match your form fields. Prepare your database structure before setting up the integration.

Airtable Integration

✓ Available on Growth, Pro, and Pro+ plans

Automatically add LeadDuo form submissions to your Airtable bases. Perfect for CRM, project management, lead tracking, and more.

📊 Setup Steps

  1. Create a new base in Airtable or use an existing one
  2. Generate an Airtable Personal Access Token
  3. Go to the Integrations tab in your LeadDuo dashboard
  4. Enable Airtable integration and enter your token, base ID, and table ID
  5. Map your form fields to Airtable fields

✨ Key Features

Add records to Airtable tables in real-time

Automatically map form fields to Airtable fields

Support for single line text, email, phone, URL, date, and more

Connect to multiple bases and tables

Leverage Airtable's powerful views, filters, and automations

💡 Tip: Your Airtable table should have fields that match your form fields. Prepare your table structure before setting up the integration.

Frequently Asked Questions

Q: How fast are webhooks delivered?

A: Webhooks are typically delivered within 1-2 seconds after form submission. Maximum timeout is 10 seconds.

Q: What happens if my webhook fails?

A: Form submissions are still saved even if webhook delivery fails. You can always access the data in your dashboard. We don't currently retry failed webhooks automatically, but it's on our roadmap.

Q: Can I set up multiple webhook URLs?

A: Currently, we support one webhook URL per form. If you need to send to multiple systems, you can use Zapier to fan out one webhook to multiple actions.

Q: Is the webhook secret required?

A: No, it's optional but strongly recommended for security. With a secret, you can verify that requests genuinely come from LeadDuo and haven't been tampered with.

Q: Can I test webhooks on localhost?

A: You can't test directly on localhost since it's not publicly accessible. Use tools like ngrok or localtunnel to expose your local server, or use services like RequestBin or Webhook.site to inspect payloads.

Q: Are Notion and Airtable integrations available on the free plan?

A: No, Notion and Airtable integrations are available on Growth plan and above. These integrations allow you to automatically send form submissions to your Notion databases or Airtable bases.

Q: Can I set up multiple Notion/Airtable integrations?

A: Currently, you can set up one Notion integration and one Airtable integration per form. If you need to send to multiple databases or bases, you can use Zapier to fan out one webhook to multiple destinations.

Q: How does field mapping work for Notion and Airtable?

A: You manually map your form fields to Notion properties or Airtable fields. During integration setup, you can select which database property each form field should be sent to. Make sure field types (text, email, phone, etc.) match for best results.

Q: Can I customize Slack notifications?

A: Yes! LeadDuo uses Slack Incoming Webhooks to send formatted messages with lead information. Messages include the form name, lead data, and LeadQualify scores (if enabled). For more customization, you can use Zapier to create custom message formats with conditional logic and rich formatting.

Q: What is analytics data and what information does it include?

A: LeadDuo automatically captures attribution and context data with each form submission. This includes UTM parameters (utm_source, utm_medium, utm_campaign, etc.), referrer URL, page URL, user agent, screen size, language, timezone, and time-to-submit. This data helps you understand where your leads come from and which marketing campaigns are most effective.

Q: Can I disable analytics data in my integrations?

A: Yes! Each integration (Email, Slack, Webhooks) has a toggle to control whether analytics data is included. By default, it's enabled for Slack and Webhooks, and disabled for Email. You can change this anytime in your integration settings.

Q: How does analytics data appear in my integrations?

A: It depends on the integration. For Webhooks, it's included as an analytics object in the JSON payload. For Slack, it appears as a context line below the main submission data. For Email, it's shown as a footer section at the bottom of the message.

🚀 Try Webhooks Now

Upgrade to Growth plan and start using real-time webhook integrations today.

Need Help?

Have questions about webhooks? Contact our support team

Third-Party Integrations - LeadDuo | Zapier, Slack, Notion, Airtable & Webhooks