Automation Basics
Automate your workflows with triggered webhooks, emails, Slack messages, and Google Sheets updates on every lead, call, and destination event. Full automation guide for Lead Distro AI.
What are Automations?
Automations are actions that fire automatically when a lead event occurs. They run in the background and never block the lead distribution flow.
Trigger Events
Triggers come in three families. Lead triggers fire on a lead campaign, call triggers fire on a Calls campaign, and destination triggers fire on a destination's own account activity.
Lead triggers
- Lead Ingested (
lead.created) — every new lead received, before routing. - Lead Accepted (
lead.accepted) — the lead was sold to a destination. - Lead Rejected (
lead.rejected) — no destination accepted it, distribution failed. - Duplicate Detected (
lead.duplicate) — the lead matched an existing record. - Lead Converted (
lead.converted) — the destination marked it converted. - Not Qualified (
lead.not_qualified) — the destination marked it not qualified. - Status Changed (
lead.status_changed) — any manual status change on a lead. - Outcome Stage Changed (
lead.outcome_stage_changed) — the lead moved stages; you can limit it to specific stages. - Lead Queued (
lead.queued) — a queue rule held the lead for later release. - Lead Reached X Days Old (
lead.aged) — fires once when a lead passes the age you set, for reselling aged leads. Needs Track Lead Age on in campaign settings.
Call triggers (Calls campaigns)
- Call Connected (
call.connected) — a destination just answered. Fires while the call is live, carrying the caller's info including any pre-call data, so you can email or webhook the details to the destination in real time. - Pre-Call Data Received Late (
call.enriched) — a source posted caller info through the Enrich API after the call had already started. Fires again with the updated info so nothing is missed. - Call Completed (
call.completed) — a call connected to a destination and ended normally. - Call Qualified (
call.qualified) / Call Not Qualified (call.not_qualified) — the destination marked the call. - Call No Answer (
call.no_answer) — no destination picked up. - Call Billable (
call.billable) — a destination was charged for the call.
Destination triggers
- Wallet Balance Below $X (
buyer.wallet_balance_below) — a destination's wallet dropped below your threshold. - Cap Reached X% (
buyer.cap_threshold_reached) — a destination's lead or budget cap crossed your percentage. - Destination Paused Delivery (
buyer.delivery_paused) / Destination Resumed Delivery (buyer.delivery_resumed) — a destination paused or resumed their own delivery from the Partner Portal.
Action Types
| Action | What It Does |
|---|---|
| Webhook | Sends a POST (or PUT / GET) with the full payload to any URL, with your own headers and body template. |
| Sends an email to any address, with a subject and rows you build from merge fields. | |
| Slack | Posts a message to a Slack channel via an incoming webhook URL. |
| Google Sheet | Appends a row to a connected Google Sheet. |
| Re-distribute | Sends the lead to another campaign or destination. Lead triggers only — it self-skips on call and destination triggers. |
Conditions
Add conditions to automations so they only fire when specific criteria are met — for example, only send a Slack notification when a lead from California is accepted.
Use the AI Assistant to set up automations conversationally — just say "Set up a Slack notification when a lead is accepted" and it will handle the configuration.
Frequently Asked Questions
What events can trigger an automation?
What action types are supported in automations?
Can I send the caller's details to my client the moment a call connects?
Can I add conditions to automations?
state == CA AND case_type == auto_accident. Conditions reference any field on the lead (system or custom). Nested AND/OR groups are supported for complex routing logic. The automation only fires when all top-level conditions are true.What does a webhook automation payload look like?
lead_id, event_type (e.g., lead.accepted), event_at timestamp, campaign_id, buyer_id, supplier_id, status. Standard contact fields (first_name, last_name, email, phone, state, zip_code) are top-level when in your campaign's field mapping. Custom fields are nested under custom. The X-LeadDistro-Signature header carries an HMAC-SHA256 signature so receivers can verify authenticity.What happens if an automation webhook fails?
Can I send a different message to different team members on the same event?
How do I test an automation before going live?
is_test: true), you can end-to-end validate an automation chain before exposing it to production traffic.If you have any questions, send us an email at support@leaddistro.ai