Back to FAQ
    For Event Professionals

    How do I send Loopedn leads to Zapier, Make or my own system?

    Short answer: Add a webhook in Settings. Loopedn sends each new lead as a signed JSON POST to the address you paste, usually within a minute. It works with Zapier and Make catch hooks, Slack workflows and your own server. It's part of Pro.

    The webhook sends every lead Loopedn captures to an address you choose, as it's captured. Use it to put leads in a spreadsheet, a Slack channel, a CRM Loopedn doesn't connect to yet, or your own system.

    Who can set it up

    A team admin adds it once for the whole team, and every teammate's leads go there. The team needs at least one Pro seat first. A rep working solo on Pro can add their own.

    Setting it up

    1. In Zapier, start a Zap with Webhooks by Zapier and Catch Hook, and copy the address it gives you. In Make, add a Custom webhook module. Any other https address works too.
    2. In Loopedn, open Settings, Webhook, paste the address and save.
    3. Copy the signing secret Loopedn shows you. It is shown once. Zapier and Make don't need it.
    4. Press Send a test. A lead called "Test Lead" arrives at your address.

    Only leads captured after you save are sent.

    What Loopedn sends

    One POST per lead, as JSON:

    {
      "id": "6f1c2a4e-...",
      "type": "lead.created",
      "created_at": "2026-10-20T15:01:00.000Z",
      "lead": {
        "id": "...",
        "first_name": "Ana",
        "last_name": "Ruiz",
        "email": "ana@acme.com",
        "phone": "+15555550100",
        "company": "Acme",
        "company_website": "https://acme.com",
        "state": "Indiana",
        "country": "United States",
        "question": "Do you integrate with HubSpot?",
        "resources": ["Pricing sheet"],
        "answers": [{ "question": "What are you interested in?", "answer": "Pricing" }],
        "tier": "A",
        "tier_name": "Hot",
        "score": 82,
        "score_reasons": ["Asked about pricing (+20)"],
        "capture_source": "QR form",
        "captured_at": "2026-10-20T14:59:12.000Z",
        "assigned_to": [{ "name": "Mary Miles", "email": "mary@acme.com" }],
        "spoke_with": ["Pedro Alvarez"],
        "follow_up_email": "sent",
        "follow_up_text": "not_sent",
        "rep_note": null,
        "url": "https://loopedn.com/attendees/..."
      },
      "event": { "id": "...", "name": "Expo 2026", "start_date": "2026-10-16" }
    }
    • type is lead.created the first time a lead is sent. Turn on Also send updates to get lead.updated too, when the tier changes, they open or click the follow-up, or a rep is assigned. An update carries the whole lead again.
    • tier is A, B or C, and tier_name says Hot, Warm or Cool. follow_up_email is one of not_sent, held, queued, sent, delivered, opened, clicked, bounced or unsubscribed.
    • New fields may be added. Existing ones are never renamed or removed.

    What is never sent

    A lead marked private, a lead with no email yet, and an email Loopedn guessed from a name and company, until a rep confirms it. A lead past the free plan's limit for its event isn't sent either.

    Checking it came from Loopedn

    Each request carries these headers:

    • Loopedn-Event: lead.created, lead.updated or test
    • Loopedn-Delivery: the delivery's id, the same as the body's id
    • Loopedn-Signature: like t=1760972400,v1=5257a8...

    v1 is an HMAC-SHA256, in hex, of t, a period, and the raw request body, keyed with your signing secret. Check it before you parse the body. In Node:

    const crypto = require("crypto");
    
    function fromLoopedn(rawBody, header, secret) {
      const t = /t=(\d+)/.exec(header)?.[1];
      const v1 = /v1=([0-9a-f]+)/.exec(header)?.[1];
      if (!t || !v1 || Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
      const want = crypto.createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
      return want.length === v1.length && crypto.timingSafeEqual(Buffer.from(want), Buffer.from(v1));
    }

    Lost the secret? New signing secret in the webhook's menu makes another, and the old one stops working at once.

    When your endpoint is down

    Any 2xx answer means delivered. A timeout (8 seconds), or a 408, 425, 429 or 5xx, is tried again the next minute, up to five times. Any other answer, a redirect included, counts as a refusal: fix your endpoint, then press Retry failed in Settings. Loopedn doesn't follow redirects, so use your endpoint's final address.

    Pricing

    The webhook is part of Pro. See pricing.

    Questions? Contact us.

    Still have questions?

    We're here to help. Reach out and we'll get back to you soon.

    Contact Us