Skip to main content
All settings articles

Leads webhook — accept inbound leads from HomeAdvisor / Thumbtack / your contact form

Per-client webhook URL + secret for pushing leads from any third-party source. Claude triages, drafts a reply, and pages your on-call tech for urgent ones.

Updated 2026-05-05

If you're getting leads from HomeAdvisor, Thumbtack, Angi Leads, a contact form on your website, or any other source that can fire an HTTP POST, the leads webhook pulls them all into your Plyrium pipeline automatically. No copy-pasting from emails, no manual entry — a lead comes in, Claude triages it, and if it's urgent your on-call tech gets paged within seconds.

Owner-only page

Settings → Leads webhook is restricted to workspace owners. The secret it shows gives write access to your lead pipeline — keep it out of shared docs and away from team members who don't need it.

Finding your URL and secret

  1. 1
    Go to Settings → Leads webhook

    Your webhook URL (always https://www.plyrium.com/api/webhooks/leads) and your per-client secret are shown on this page.

  2. 2
    Copy the secret

    Click the copy button next to the secret field. This is what you'll paste into HomeAdvisor / Thumbtack / Zapier / your contact form as the authentication value.

  3. 3
    Copy your client_id

    Also shown on the same page — a UUID you'll include in the request body. This tells the webhook which workspace the lead belongs to.

  4. 4
    Paste both into your integration

    Configure your lead source to POST to the webhook URL with the secret in the header and your client_id in the body (see example below).

Request format

The webhook endpoint accepts a JSON POST with one required header and a JSON body:

MethodPOST
URLhttps://www.plyrium.com/api/webhooks/leads
Header: x-leads-secretYour per-client secret from the settings page.
Header: Content-Typeapplication/json
Header: x-leads-event-id (optional)A unique ID from your lead source. Include it and Plyrium deduplicates retries with the same ID within 24 hours — no double leads if your integration sends the same payload twice.

Body fields

client_id (required)Your workspace UUID — shown on the settings page.
source (required)One of: form, sms, email, phone, manual. Use "form" for contact forms, HomeAdvisor, Thumbtack.
message (required)The lead's description or inquiry text. Min 1 character.
contact_name (optional)The lead's name if your form captured it.
contact_email (optional)The lead's email address.
contact_phone (optional)The lead's phone number (10 digits recommended).
contact_city (optional)The lead's city — helps Claude route and qualify the lead.

curl example

curl -X POST https://www.plyrium.com/api/webhooks/leads \
  -H "Content-Type: application/json" \
  -H "x-leads-secret: YOUR_SECRET_HERE" \
  -d '{
    "client_id": "YOUR_CLIENT_ID",
    "source": "form",
    "message": "AC making a loud rattling sound — unit is 3 years old",
    "contact_name": "Jane Homeowner",
    "contact_email": "jane@example.com",
    "contact_phone": "5555551234",
    "contact_city": "Coolidge"
  }'

What happens when a lead arrives

  1. Plyrium verifies the secret against your workspace. Wrong secret = 401, no lead created.
  2. Claude triages the message: category (urgent_lead / qualified / spam / vendor), urgency, intent summary, and extracts any contact fields not supplied in the body.
  3. If AI reply drafting is enabled (Settings → Features → Email lead triage), Claude drafts a reply you can review on /portal/leads.
  4. If the lead is categorized as urgent_lead AND urgent escalation is on: your owner email gets an alert, on-call techs get an SMS page, and any team member with push notifications enabled gets a web push.
  5. The lead row lands in /portal/leads with status new, draft_pending, or escalated. You see it immediately.

Common integrations

HomeAdvisor / Angi LeadsSet up via their "Lead delivery webhook" setting in your pro account. Paste the Plyrium URL + secret. Their payload shape varies — use Zapier or Make as a translator if their fields don't map cleanly.
ThumbtackThumbtack Pro doesn't have native webhook export yet. Use Zapier (Thumbtack → Webhook POST) to bridge.
Zapier"Webhooks by Zapier" action: POST to the Plyrium URL with the header + body mapped from whichever trigger app you use.
Contact form (Gravity Forms, Elementor, WPForms)Each has a "webhook" or "post to URL" option. Map form fields to the Plyrium body shape; add the secret as a custom header.
Custom codeAnything that can fire an HTTP POST works. See the curl example above.

Regenerating the secret

If your secret leaks, click Regenerate on the settings page. A new 64-character hex secret is issued immediately. The old secret stops working at once — every active integration using the old value will start getting 401s until you update it. The rotation is audit-logged (Profile → Activity) so you can see when it happened.

Regenerating breaks active integrations

Don't rotate casually. If you have three integrations running and you rotate the secret, all three stop sending leads until each one is updated. Plan accordingly — rotation is a security response action, not routine maintenance.

Ready to try this in the actual product?

14-day free trial, no card charged for 14 days, cancel anytime.

More settings articles