← All guides
🔗4 min readOpen Integrations →

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_captured POST 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.

Open Integrations →