Integrations
DURUM.ai connects to your existing tools to centralize your leads, bookings, sales, payments and ad spend. Everything happens in Settings → Integrations: each tool has a card with a Connect button, then a Configuration button once connected.
Catalog
The catalog below is the one shown in the app, grouped by category. "Connection mode" tells you what you do: authorize in one click (OAuth), paste an API key, or copy a webhook URL into the tool.
Accounting
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| Zoho Books | OAuth, then webhooks to copy into Zoho Books (guide in the app); sync every 6 hours | Payments, invoices | Zoho Books |
| QuickBooks | OAuth shown in the app, but no QuickBooks event is processed yet: do not rely on this connector for your numbers | none | Ask your account manager |
CRM
On the Discovery plan, one CRM connection is active at a time (error plan_free_one_crm beyond that). Paid tiers have no such limit.
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| GoHighLevel | Native OAuth (sub-account choice); no webhook to create; classification of forms, calendars and pipelines | Leads, applications, bookings, no-shows, sales (Won opportunity in a selected pipeline) | GHL |
| Pipedrive | OAuth; webhooks created automatically | Leads (new contact), sales (deal won), losses (deal lost), bookings (meeting activity) | Pipedrive |
| iClosed | API key (Business or Enterprise plan), then 4 webhooks to copy into iClosed (guide in the app); can push your attribution back to iClosed | Leads (contact created), applications (qualified contact), bookings (call booked), no-shows, sales (WON outcome), losses (NO_SALE outcome), payments (transactions), refunds | iClosed |
Forms
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| Typeform | OAuth; webhooks created automatically; classification of each form (lead, application, ignore) | Leads, applications | Typeform |
Funnels
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| ClickFunnels | API key + subdomain; webhooks created automatically; classification of each funnel | Leads (form submissions), applications (per funnel mapping), sales (one-time orders) | ClickFunnels |
Scheduling
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| Calendly | OAuth; classification of each event type; sync every 15 minutes | Bookings, no-shows | Calendly |
Advertising
| Integration | Connection mode | Data captured | Guide |
|---|---|---|---|
| Meta Ads | OAuth only; choice of ad account, Page and pixel | Spend per ad per day (hourly sync), creatives; Conversions API | Meta Ads |
| Google Ads | OAuth; choice of customer account | Spend per ad (hourly sync); conversion upload | Google Ads |
| TikTok Ads | TikTok OAuth; choice of account, identity and pixel | Spend per ad (hourly sync); conversion upload | TikTok Ads |
| ChatGPT Ads | API key (issued in OpenAI Ads Manager, tied to a single ad account) | Spend, clicks; conversion upload | ChatGPT Ads |
Payments
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| Stripe | Restricted API key (import of the last 90 days) + signed webhook destinations, secrets entered in Configuration | Sales (checkout), payments (recurring), refunds, subscriptions | Stripe |
E-commerce
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| Shopify | OAuth on your store (.myshopify.com subdomain); webhooks created automatically | Sales (paid orders), refunds | Shopify |
Communication
| Integration | Connection mode | What it does | Guide |
|---|---|---|---|
| Slack | OAuth on your workspace | Automated reports, alerts and call analyses in your channels | Slack |
Calls
| Integration | Connection mode | Events captured | Guide |
|---|---|---|---|
| Aircall | One-click OAuth when available, otherwise API key; webhook URL to copy into Aircall (guide in the app) | Completed calls, recordings, post-call notes | Aircall |
Per-rep connections (Profile page)
These connections are not in the Integrations catalog: each rep makes them in their Profile.
| Integration | Connection mode | What it does | Guide |
|---|---|---|---|
| Google Calendar | OAuth | Tracking of the rep's meetings and recordings | Google Calendar / Outlook |
| Microsoft Outlook | OAuth | Same thing for Outlook users | Google Calendar / Outlook |
| Zoom | OAuth | Cloud recordings, transcription and coaching | Zoom |
Zoho CRM
Zoho CRM has no card in the catalog: sales (won or lost deals) arrive through a manual webhook to the Sale URL. See Zoho CRM.
How Data Gets Into DURUM.ai
1. Webhooks (real time)
A webhook is a notification sent by an external tool to DURUM.ai when an event occurs. It is the primary method for all CRM events: leads, applications, bookings, no-shows, sales, payments, refunds.
Depending on the tool, the webhook is created automatically at connection (GoHighLevel, Pipedrive, Typeform, ClickFunnels, Shopify), or you copy the URL shown in the app into the tool (Stripe, Zoho Books, iClosed, Aircall).
2. Periodic sync
Some data is read periodically through APIs:
| Data | Frequency |
|---|---|
| Meta Ads spend | Every hour (last 3 days), 30-day pass about once a day, daily reconciliation |
| Google Ads, TikTok Ads, ChatGPT Ads spend | Every hour |
| Calendly | Every 15 minutes |
| Zoho Books | Every 6 hours |
| GoHighLevel | Initial import at connection, then users and calls every 10 minutes |
| Stripe | Import of the last 90 days when the key is connected |
INFO
Periodic sync imports spend and enriches contacts. Your funnel events (leads, bookings, sales) arrive through webhooks, in real time.
Your Business ID
Every webhook URL carries your Business ID (bid=), which ties the event to your account. You find it in Settings → Integrations → For your developer section, where the URLs are already filled in.
WARNING
A webhook without a valid bid= cannot be tied to your account. Always copy the URLs from the app rather than rebuilding them by hand.
The Eight Standard Webhooks
They are listed in Settings → Integrations → For your developer, with a Copy button for each. Format:
https://app.durum.ai/api/webhook/{type}?bid={your_business_id}| Event type | URL | Method | Recognized sources |
|---|---|---|---|
| Lead (new prospect) | https://app.durum.ai/api/webhook/lead?bid=YOUR_BUSINESS_ID | POST | GHL, Typeform, iClosed, Pipedrive, ClickFunnels, generic |
| Application | https://app.durum.ai/api/webhook/application?bid=YOUR_BUSINESS_ID | POST | GHL, generic |
| Booking (appointment booked) | https://app.durum.ai/api/webhook/booking?bid=YOUR_BUSINESS_ID | POST | Calendly, GHL, iClosed, Pipedrive, generic |
| No-show | https://app.durum.ai/api/webhook/no-show?bid=YOUR_BUSINESS_ID | POST | Calendly, GHL, iClosed |
| Sale (deal closed, checkout completed) | https://app.durum.ai/api/webhook/sale?bid=YOUR_BUSINESS_ID | POST | Zoho CRM, GHL, Stripe, iClosed, Pipedrive, ClickFunnels, generic |
| Payment (invoice paid) | https://app.durum.ai/api/webhook/payment?bid=YOUR_BUSINESS_ID | POST | Stripe, Zoho Books, iClosed, GHL, generic |
| Refund | https://app.durum.ai/api/webhook/refund?bid=YOUR_BUSINESS_ID | POST | Stripe |
| Add to cart | https://app.durum.ai/api/webhook/add-to-cart?bid=YOUR_BUSINESS_ID | POST | Store, funnel, checkout, generic, DURUM pixel (durum.track('AddToCart')) |
TIP
For GHL through a manual workflow, add &source=ghl; for iClosed, &source=iclose; for Zoho Books, &source=zoho. The URLs shown in the app's guides already carry this parameter.
Have an event of your own (pipeline stage, custom field)? In Settings → Events and CAPI → Events, add a custom event: it gets its own webhook URL and can then be sent to your ad platforms from the Conversions tab. The expected data format is described in Sending Data (webhook).
UTM Tracking: Essential for Attribution
To link your leads and sales to the right ads, install the DURUM.ai tracking script on your opt-in pages and keep your UTM parameters in your ads. Without it, your data arrives but without ad attribution.
See the complete guide: UTM Tracking. If a webhook misbehaves: Webhook Troubleshooting.