Integrations: GHL, webhooks, Slack & Discord
Settings → Integrations connects SetterStack to the rest of your stack.
01GoHighLevel (booking attribution)
SetterStack's booking links automatically carry attribution — which Instagram handle and which exact conversation sent the lead. A simple GHL workflow writes those onto the contact when they book, and GHL's booking webhook back to SetterStack marks the conversation Booked ✓ and notes the CRM record.
Result: you can trace every booked call to the DM conversation — and the flow — that produced it.
02Outbound webhooks (SetterStack → your tools)
Outbound lead-push destinations (custom webhook, GHL, Zapier) are on the Pro plan and up. Slack & Discord alerts (below) are included on every plan.
``json { "event": "workflow.lead", "lead": { "name": "…", "handle": "their_ig_handle", "platform": "instagram", "phone": "+15551234567", "email": "lead@email.com", "consent": true, "qualification": { "goal": "…", "budget": "…", "timeline": "…" }, "tags": ["interested", "contact_consent"], "threadId": "…" } } ``
``json { "event": "lead.contact_captured", "source": "setterstack", "contact": { "name": "…", "phone": "+15551234567", "email": "lead@email.com" }, "profile": { "platform": "instagram", "username": "their_ig_handle", "userId": "…", "profileUrl": "https://instagram.com/their_ig_handle" }, "conversation": { "threadId": "…", "leadSource": "comment", "tags": ["contact_consent"] } } ` Upsert on contact.phone or contact.email`. The same lead won't fire twice for the same details, but will fire again if their email arrives after their phone — so handle it as an update, not only a create. If your endpoint is down, the push retries on the lead's next message rather than being dropped.
- The "Call a webhook" flow step POSTs the lead's info to any URL mid-flow — push qualified leads into your CRM, a Google Sheet via middleware, or Zapier/Make.
- The payload includes the lead's name, handle, phone, email, consent, all captured qualification fields, and tags — everything your GHL/Zapier automation needs to create or update the contact (upsert by phone/email) without the lead ever filling out a form:
- The DM is the form. Turn on AI Config → Conversion goal → Ask for their phone / email and your AI will naturally ask a warm lead for the best phone or email for your team to follow up — once, after value, and only with their OK (never pushy, never on the first message). If a lead volunteers their number or email on their own, it's captured either way.
- Every captured contact fires its own
lead.contact_capturedPOST to each active webhook / GHL / Zapier destination — you do not need a flow step for this. It carries the lead's Instagram identity alongside their details, so the CRM record is a person rather than a stray phone number:
03Inbound webhooks (your tools → SetterStack)
- Add the "Another tool sends a lead here" trigger to a flow and it gets a private webhook URL (with a secret token you can regenerate anytime).
- POST a lead to that URL — by conversation reference or just
{"username": "their_handle"}— and the flow starts for them. - Typical use: a GHL workflow enrolls a lead into a SetterStack DM sequence when they hit a pipeline stage.
Note: inbound triggers start flows, and normal messaging-window rules still apply to what those flows can send.
04Slack & Discord
Paste a channel webhook URL and hit Test. Then:
- Notify the team flow steps ping the channel.
- Needs-a-human alerts (escalations, human-hotline keywords) reach your team in real time, de-duplicated so a chatty lead doesn't flood the channel.
- System alerts (e.g. delivery failures) can ride the same channel — so silence really means "all good."
05Weekly results email
Every Monday morning, the workspace owner gets a short scorecard for the week: new leads, how many qualified, and calls booked — pulled straight from your real numbers. Quiet weeks with zero activity don't send anything.
06Turning off email notifications
Prefer a quiet inbox? Settings → Integrations → Email notifications is one switch that stops the operational emails SetterStack sends the workspace owner — failed-reply alerts, account-disconnected warnings, daily send-limit notices, booking confirmations, and the weekly scorecard. Everything still shows in the in-app notification bell, and billing/login emails always send. If you have a Slack or Discord channel wired for alerts, those keep working — the switch only covers email.
07CSV export
Settings → Accounts exports your leads as CSV anytime — handle, stage, tags, qualification data. Your data is yours.
Ready to use this?
It's live in your workspace right now.
