document.addEventListener("DOMContentLoaded", function () { const hamburger = document.getElementById("hamburger"); const menu = document.getElementById("navLinks"); const links = document.querySelectorAll("#navLinks a"); /* TOGGLE MENU */ hamburger.addEventListener("click", () => { menu.classList.toggle("active"); hamburger.classList.toggle("active"); }); /* CLOSE ON CLICK */ links.forEach(link => { link.addEventListener("click", () => { menu.classList.remove("active"); hamburger.classList.remove("active"); }); }); /* SCROLL EFFECT */ window.addEventListener("scroll", () => { const header = document.getElementById("container01"); if (window.scrollY > 50) { header.classList.add("scrolled"); } else { header.classList.remove("scrolled"); } }); });

The Private Community for Lead Market Operators

A private community for professionals in insurance and financial services lead generation.

Join a curated network of leaders, operators, and experts shaping the future of lead generation, compliance, and customer acquisition.

🎉 Free through December 31, and active members stay free.

Lead generation and insurance marketing professionals reviewing results together
Lead Market Forum members discussing lead quality and compliance around a table

What is Lead Market Forum?

Lead Market Forum is a year-round professional community designed for leaders in lead generation, consumer acquisition, and marketing within insurance and financial services. Built by leaders from the Insurance Marketing Coalition (IMC) and the Lead Quality Alliance (LQA), the forum provides a trusted environment where professionals can:

  • Collaborate with peers across the ecosystem

  • Share real-world insights and strategies

  • Discuss the rapidly evolving lead marketplace

The community enables real-time, high-quality conversations between:

This is not a public group—it’s a curated, private network focused on meaningful industry dialogue.

Who is it for?

Designed for those actively building, buying, and optimizing leads in insurance and financial services.

Who It’s Built For

Lead Market Forum is designed for professionals working across the lead generation and financial services ecosystem, including:

  • Lead generation

  • Performance marketing

  • Insurance distribution

  • Call Centers

  • Compliance and regulation

  • Marketing technology (MarTech)

  • Financial services customer acquisition

Audience Breakdown

Members typically include:

  • Executives and decision-makers

  • Founders and business owners

  • Operators managing campaigns and teams

  • Industry experts and consultants

If you are actively involved in building, buying, optimizing, or regulating leads, this community is built for you.

Above all, it's for people who take part: ask, answer and share what you know.

Inside the Lead Market Forum

Members gain access to a high-value, signal-driven environment designed to deliver insights, connections, and opportunities.

Private Slack community icon

Private Slack Community

Engage in real-time discussions with verified industry professionals

Topic-specific channels icon

Topic-Specific Channels

Focused conversations across compliance, acquisition, distribution, and more

Direct access to industry leaders icon

Direct Access to Industry Leaders

Connect with lead buyers, sellers, platforms, and decision-makers

Industry intelligence icon

Industry Intelligence

Insights from IMC, LQA, and major conference leaders

Regulatory and market updates icon

Regulatory & Market Updates

Early discussions on compliance changes and market shifts

Expert Q&A sessions icon

Expert Q&A Sessions

Learn directly from experienced professionals in the ecosystem

Collaboration and deal flow icon

Collaboration & Deal Flow

Build partnerships, explore opportunities, and exchange value

Event discussions icon

Event Discussions

Conversations tied to IMC, LQA, LeadsCon, and Contact.io

Join the Private Community for
Lead Generation Leaders

🎉 Free for everyone through December 31. We're building a room of contributors, not spectators. Every helpful thing you do in the forum earns LMF Chips, and from January 1, your Chips pay your dues.

1. Join free. Membership is free for everyone through December 31.
2. Take part. Answer a question, start a topic, welcome a new member, or refer a colleague who joins. Each one earns Chips.
3. Ride free. Each month your Chips cover your membership, you pay $0. Only members who just read pay for access.

Referrals count most: one colleague who joins and gets involved earns you a free month. Join free today

Membership from January 1
For members who'd rather just read. Partner Eligibility is verified after signup. Ineligible registrations will be refunded or converted to standard membership

Standard Membership

$20 / Month

  • Access to the full Lead Market Forum community and all member benefits.

    $0 any month your Chips cover it.

Partner Organization Membership

$12 / Month

  • Insurance Marketing Coalition (IMC)

  • Lead Quality Alliance (LQA)

  • Registrants of LeadsCon and Contact.io

Hosted by Mark Seghers & Farzin Espahani

Backed by Industry Leaders

Lead Market Forum is supported by leading organizations and events shaping the industry:

These partners help drive high-quality discussions and insights within the community.

Frequently asked questions

What is the Lead Market Forum?

A private Slack community for professionals who buy, sell, build and protect leads in insurance and financial services, from Medicare and ACA to final expense, auto and home. Members compare notes on lead quality, compliance, pricing and partners.

Who can join?

Lead buyers and sellers, call centers, agencies and FMOs, compliance and legal experts, and lead generation technology leaders. Every application is reviewed so the conversation stays professional.

How much does it cost?

Membership is free for everyone through December 31, 2026. After that, active members keep riding free with LMF Chips. Members who'd rather just read pay $20 a month, or $12 a month for partner organizations (IMC, LQA, and LeadsCon and Contact.io registrants).

What do members talk about?

Lead quality and returns, TCPA and FCC consent rules, CMS marketing rules for Medicare, AEP and OEP results, pay-per-call, AI in lead generation, and finding trusted partners, plus Ask Me Anything sessions with industry leaders.

How do I join?

Use any "Join Free Today" button on this page. The application takes about two minutes, and approved members get their Slack invitation by email.

{"@context":"https://schema.org","@graph":[ {"@type":"Organization","@id":"https://leadmarketforum.com/#org","name":"Lead Market Forum","alternateName":"LMF","url":"https://leadmarketforum.com/","sameAs":["https://www.linkedin.com/company/lead-market-forum/"], "description":"A private Slack community for leaders who buy, sell and protect leads in insurance and financial services.", "founder":[{"@type":"Person","name":"Mark Seghers"},{"@type":"Person","name":"Farzin Espahani"}]}, {"@type":"WebSite","@id":"https://leadmarketforum.com/#site","url":"https://leadmarketforum.com/","name":"Lead Market Forum","publisher":{"@id":"https://leadmarketforum.com/#org"}}, {"@type":"FAQPage","mainEntity":[ {"@type":"Question","name":"What is the Lead Market Forum?","acceptedAnswer":{"@type":"Answer","text":"A private Slack community for professionals who buy, sell, build and protect leads in insurance and financial services, from Medicare and ACA to final expense, auto and home. Members compare notes on lead quality, compliance, pricing and partners."}}, {"@type":"Question","name":"Who can join?","acceptedAnswer":{"@type":"Answer","text":"Lead buyers and sellers, call centers, agencies and FMOs, compliance and legal experts, and lead generation technology leaders. Every application is reviewed so the conversation stays professional."}}, {"@type":"Question","name":"How much does it cost?","acceptedAnswer":{"@type":"Answer","text":"Membership is free for everyone through December 31, 2026. After that, active members keep riding free with LMF Chips. Members who'd rather just read pay $20 a month, or $12 a month for partner organizations (IMC, LQA, and LeadsCon and Contact.io registrants)."}}, {"@type":"Question","name":"What do members talk about?","acceptedAnswer":{"@type":"Answer","text":"Lead quality and returns, TCPA and FCC consent rules, CMS marketing rules for Medicare, AEP and OEP results, pay-per-call, AI in lead generation, and finding trusted partners, plus Ask Me Anything sessions with industry leaders."}}, {"@type":"Question","name":"How do I join?","acceptedAnswer":{"@type":"Answer","text":"Use any Join Free Today button on this page. The application takes about two minutes, and approved members get their Slack invitation by email."}}]} ]}

Join the Leaders Shaping the Future of Lead Generation

Connect with top professionals across insurance and financial services. Access insights, build relationships, and stay ahead in a rapidly evolving market.

Free through December 31, and active members stay free.

Lead generation and insurance marketing leaders talking at the Lead Market Forum
Lead Market Forum logo

A private community for professionals in insurance and financial services lead generation. Connect, collaborate, and stay ahead in a rapidly evolving market.

Social Media


© 2026 Lead Market Forum. All rights reserved

Lead Market Forum Membership TermsEffective November 3, 2026. Lead Market Forum ("LMF," "we") is operated by Inspire Health Tech Partners LLC.1. What membership includesAccess to the private LMF Slack workspace, its channels, Ask Me Anything sessions, and member events, for as long as your membership is active.2. Free periodMembership is free for everyone through December 31, 2026. Nothing is charged before January 1, 2027. This period is also the Chips "Stack-Up" (Section 5).3. Card on fileWe ask every member, new and existing, to add a payment card through our payment processor, Stripe. We do not see or store your full card number. Your card is not charged when you add it. Nothing is charged before January 1, 2027, and after that only for a month your Chips do not cover. You authorize us to charge it only as described in Section 4. Charges appear on your statement as "LEAD MARKET FORUM."A card is requested, not required: as long as your Chips cover each month, a missing card does not affect your access. If, on the last day of a month, your Chips do not cover the coming month and you have no card on file, we email and message you that day, remind you on the 4th, and send a final notice on the 7th. If you have not added a card by the 8th of that month, your Slack account is deactivated (not deleted). Adding a card at any time reactivates it, with your Chips and history intact; you are charged only for the month you rejoin, never for months you were away.If your card on file is declined, our processor retries it for about two weeks and emails you how to update it. You keep your access during that time; if every retry fails, your account is deactivated the same way.4. Monthly fee and when it is charged• From January 1, 2027, membership costs $20 per month (Standard) or $12 per month (Partner rate for verified members of IMC, LQA, and registrants of LeadsCon and Contact.io).• Each month's fee is covered, in whole, by LMF Chips if your Chip balance meets the monthly threshold (Section 5). If your Chips cover a month, you are charged $0 for that month.• We check Chip balances on the last day of each month, starting December 31, 2026. If your Chips do not cover the coming month, we email you that day and charge the monthly fee to your card on file on the 1st of that month. For example, if your Chips on January 31 do not cover February, you are emailed on January 31 and charged on February 1.• Before any charge, we email you with your Chip balance and the amount and date of the charge, and you can cancel before the charge date.• Fees are in U.S. dollars and do not include any taxes that may apply.5. LMF Chips• Members earn Chips for taking part in the forum: for example, answering questions, starting topics, replying, welcoming new members, and referring colleagues who join. The current list of actions and point values is posted in #lmf-start-here.• The Stack-Up (October 1 – December 31, 2026). Chips earned during this period add up in full. Balances are not checked or halved until December 31, 2026.• The first check is December 31, 2026. If your Chip balance that day is at least 80, your January 2027 fee is covered.• After that, every month. On the last day of each month, if your Chip balance is at least 80, your next month's fee is covered.• Halving. Right after each check, starting December 31, 2026, every member's Chip balance is cut in half (rounded up to a whole Chip), whether or not it covered the coming month. You then keep earning on top of the halved balance.• Chips Bank. The Chips removed when your balance is halved are not lost: they move to your Chips Bank. Bank Chips can be used only for perks we announce from time to time (for example, featured spots or partner discounts). Bank Chips never pay for membership.• About a week before each month ends (starting in December), we send you a private Slack message with your Chip balance, how close you are to the threshold, and ways to earn more before the month closes. Your point total is private to you and LMF administrators. A public top-10 leaderboard in #lmf-chips shows rankings only, never point totals.• Chips (including Bank Chips) have no cash value, cannot be bought, sold or transferred, and are not refunded if your membership ends.• We may change how Chips are earned or the monthly threshold with at least 30 days' notice in Slack and by email. Changes never reduce Chips you have already earned.• You can earn at most 15 Chips a day from your own posts, replies and welcomes. Referrals and Chips other members give you do not count toward this limit.• We may remove Chips earned through spam, self-promotion, or gaming the system (for example, low-value posts made only to earn Chips).6. Luminaries and comped membersMembers we name as Luminaries, and anyone we comp in writing, are not charged. Luminaries agree to be identified publicly as Luminaries (Slack profile, website, LinkedIn).6a. Prepaid annual membershipsMembers who prepaid an annual membership are covered through the end of that paid year, whatever their Chip balance. They keep earning Chips. When the paid year ends, their membership continues on the monthly plan in Section 4.7. Canceling• You can cancel at any time online through your Stripe billing page (link in every billing email and in #lmf-start-here). There you can also update your card and download receipts. Canceling stops all future charges; you keep access until the end of the month you've already paid for.• There are no refunds for a month that has already been charged, unless we made an error.8. Removal from the forumLMF is curated. We may suspend or remove a member who breaks the Rules of Engagement (#lmf-start-here). If we remove you, no further charges occur, and we refund any charge for a month you can no longer use.9. Changes to priceWe will give you at least 30 days' notice by email before any price increase. If you don't agree, you can cancel before the new price applies.10. ContactQuestions: [email protected].← Back to Lead Market Forum

Lead Market Forum Privacy PolicyEffective November 3, 2026. Lead Market Forum ("LMF," "we") is operated by Inspire Health Tech Partners LLC, 2510 North 85th Street, Wauwatosa, WI 53226. This policy explains what we collect when you visit leadmarketforum.com, apply to join, or take part in the forum, and what we do with it.1. What we collect• Your application: name, title, company, work email, mobile phone (optional), LinkedIn profile, your area of work, and your answers to our application questions.• Colleagues you refer: if you name a colleague, we receive their name and email address from you, and send them one invitation email.• Forum activity: your Slack profile and what you post in the LMF Slack workspace (messages, replies, reactions and files), plus when you sign in.• LMF Chips: a record of the activities that earn Chips, and any screenshots you send us to claim LinkedIn Chips.• Payment details: if you add a card, our payment processor, Stripe, collects and stores it. We never see or store your full card number. We receive your name, email, the last four digits and expiration date of your card, and your billing history.• Website visits: our site uses Google Analytics, which uses cookies to tell us how visitors find and use the site (pages viewed, general location, device and browser). See Section 6.• Messages you send us by email or in Slack.2. How we use it• To review applications. LMF is curated, so we check that members are real professionals in our industry.• To run the forum: invite you to Slack, welcome you, and send forum news, event and Ask Me Anything reminders.• To track Chips, send your monthly Chips update, and show the top-10 leaderboard (rankings only, never point totals).• To bill membership as described in our Membership Terms, and to send billing notices.• To keep a backup archive of the forum, so members can still read older conversations.• To improve the forum and the website.• To enforce our Rules of Engagement and protect members.3. AI toolsWe use AI tools (currently Anthropic's Claude) to help run the forum, for example to suggest conversation starters, draft messages for our hosts to review, and count Chips. These tools work on forum content and member details, and we have turned off the setting that would let the provider use our conversations to train its models. We endeavor to have a person at LMF review every message before it is posted in our name.4. Who can see your information• Other members see your Slack profile and everything you post in shared channels. Older posts stay readable to current members through the LMF Archive.• The public does not see forum content. We may quote a short, anonymous excerpt (initials only) when we promote the forum, and we name members publicly only with their OK (for example, Luminaries and AMA guests).• Service providers that help us run LMF: Slack (the forum), Google (forms, email, file storage and analytics), Stripe (payments), Carrd (our website) and Anthropic (AI tools). They may use your information only to provide their service to us.• Legal reasons: we may disclose information if the law requires it, or to protect our members, LMF or others.• Business change: if LMF is sold or merged, your information may transfer to the new owner under this policy.We do not sell your personal information, and we do not share it with other members' companies, lead buyers or advertisers.5. How long we keep itWe keep your information while you are a member, and for up to two years after you leave, so we can answer billing questions and keep the forum archive complete. Applications from people who did not join are deleted after one year. Stripe keeps payment records as financial rules require. You can ask us to delete your information sooner (Section 7).6. CookiesOur website uses a small number of cookies. Google Analytics cookies measure visits; you can block them with your browser settings or Google's opt-out add-on (tools.google.com/dlpage/gaoptout). Slack and Stripe set their own cookies when you use them, under their own policies. We do not use advertising cookies.7. Your choices and rights• See, correct or delete your information: email us and we'll respond within 30 days. Deleting your information ends your membership. Posts other members already replied to may stay in the forum with your name removed.• Emails: reply or email us anytime to stop non-billing emails. Billing notices are part of membership and continue while you have a card on file.• Leave anytime: cancel your membership through your Stripe billing page or by emailing us.Depending on where you live (for example, California), you may have additional rights. We honor these requests for every member.8. SecurityWe limit access to LMF's hosts, use the security tools our service providers offer, and never store full card numbers. No system is perfectly secure, so please don't share sensitive personal or consumer data in the forum. LMF is a professional community: never post consumer or Medicare beneficiary information, or anything protected by privacy laws such as HIPAA.9. Who LMF is forLMF is for working professionals. We don't knowingly collect information from anyone under 18.10. ChangesIf we make a significant change to this policy, we'll tell members in Slack and by email at least 30 days before it takes effect, and update the date at the top.11. ContactQuestions or requests: [email protected], or Inspire Health Tech Partners LLC, 2510 North 85th Street, Wauwatosa, WI 53226.← Back to Lead Market Forum

Add your card
One moment…
(function () { var EXEC = 'https://script.google.com/macros/s/AKfycbzksQZwjYN9_Lv_4Tyll95duGkr4lATfb2uQ7UGesyOLStRHViUZ2-862YctmaQyP5r/exec'; var TERMS = 'https://leadmarketforum.com/#terms', BILLING = 'https://billing.stripe.com/p/login/28E6oA6KR0nFb3u23VaMU00'; var q = new URLSearchParams(location.search); var box = document.getElementById('lmf-card'); var enc = encodeURIComponent; function el(tag, style, parts) { var n = document.createElement(tag); if (style) n.setAttribute('style', style); (parts || []).forEach(function (x) { n.appendChild(typeof x === 'string' ? document.createTextNode(x) : x); }); return n; } function link(text, href) { var a = el('a', 'color:#1a5fb4', [text]); a.href = href; return a; } function bold(text) { return el('b', '', [text]); } function show(title, paras) { box.textContent = ''; box.appendChild(el('div', 'display:block;font-size:1.6rem;font-weight:700;margin:0 0 14px', [title])); paras.forEach(function (p) { box.appendChild(el('div', 'display:block;margin:0 0 12px;font-size:1rem', p)); }); } function call(params) { return fetch(EXEC + '?json=1&' + params, { credentials: 'omit' }).then(function (r) { return r.json(); }); } if (q.get('done')) { show('Saving your card…', [['One moment.']]); var thanks = function () { show('Card saved. Thank you!', [ ['Your card is on file and ', bold('nothing was charged'), '.'], ['LMF is free through December 31, 2026. After that, any month your LMF Chips cover, you pay $0. We’ll always email you before a charge.'], ['You can update your card or cancel anytime from your ', link('billing page', BILLING), '. Full details: ', link('Membership Terms', TERMS), '.'] ]); }; call('done=' + enc(q.get('done'))).then(thanks, thanks); } else if (q.get('cancel')) { show('No card added yet', [ ['No problem. Your membership is free through December 31, 2026 either way.'], ['You can add a card any time with the button in your LMF email.'] ]); } else if (q.get('e') && q.get('s')) { var start = function (force) { show('Add your card', [['Opening the secure Stripe page… Your card goes straight to Stripe, our payment processor. You won’t be charged today.']]); call('e=' + enc(q.get('e')) + '&n=' + enc(q.get('n') || '') + '&p=' + enc(q.get('p') || '0') + '&s=' + enc(q.get('s')) + (force ? '&force=1' : '')) .then(function (j) { if (j.url) { location.href = j.url; return; } if (j.onfile) { var cardName = j.onfile.brand + ' ending ' + j.onfile.last4; var yes = el('a', 'display:inline-block;background:#1a5fb4;color:#fff;padding:12px 22px;border-radius:6px;text-decoration:none;font-weight:bold;cursor:pointer;margin:0 10px 10px 0', ['Yes, use a different card']); yes.href = '#card'; yes.addEventListener('click', function (ev) { ev.preventDefault(); start(true); }); var no = el('a', 'display:inline-block;background:#fff;color:#1a5fb4;border:2px solid #1a5fb4;padding:10px 20px;border-radius:6px;text-decoration:none;font-weight:bold;cursor:pointer;margin:0 10px 10px 0', ['No, keep this card']); no.href = '#card'; no.addEventListener('click', function (ev) { ev.preventDefault(); show('You’re all set', [ ['We’ll keep your ', bold(cardName), ' on file. Nothing has been charged.'], ['LMF is free through December 31, 2026. After that, any month your LMF Chips cover, you pay $0. We’ll always email you before a charge.'], ['Full details: ', link('Membership Terms', TERMS), '.'] ]); }); show('You already have a card on file', [ ['Your ', bold(cardName), ' is on file, and nothing has been charged.'], [bold('Would you like to change it?')], [yes, no], ['You can also remove old cards or cancel anytime on your ', link('billing page', BILLING), '.'] ]); return; } show('This link didn’t work', [['Please use the button in your LMF email, or reply to that email and we’ll send a new one.']]); }, function () { show('Something went wrong', [['Sorry, we couldn’t open the card page just now. Please try again in a few minutes, or reply to your LMF email.']]); }); }; start(false); } else { show('Add your card', [['To add your card, use the personal button in your LMF email. Questions? Email [email protected].']]); } })();
Refer a colleague
One moment…
(function () { var EXEC = 'https://script.google.com/macros/s/AKfycbzksQZwjYN9_Lv_4Tyll95duGkr4lATfb2uQ7UGesyOLStRHViUZ2-862YctmaQyP5r/exec'; var FORM = 'https://forms.gle/Y34JDEBj6XBtDAEh8'; var MAIL = 'mark' + String.fromCharCode(64) + 'leadmarketforum.com'; /* built in pieces: Cloudflare rewrites any email address it finds in the page, which garbles it inside a script */ var AMP = String.fromCharCode(38) + 'amp;'; var q = new URLSearchParams(location.search.split(AMP).join(String.fromCharCode(38)).replace('?amp;', '?')); var box = document.getElementById('lmf-refer'); if (!box) return; var enc = encodeURIComponent; var BLUE = '#1a5fb4'; function el(tag, style, parts) { var n = document.createElement(tag); if (style) n.setAttribute('style', style); (parts || []).forEach(function (x) { n.appendChild(typeof x === 'string' ? document.createTextNode(x) : x); }); return n; } function para(parts, style) { return el('div', 'display:block;margin:0 0 12px;font-size:1rem;' + (style || ''), parts); } function head(text) { return el('div', 'display:block;font-size:1.15rem;font-weight:700;margin:26px 0 8px', [text]); } function bold(text) { return el('b', '', [text]); } function button(text, primary) { var b = el('button', 'display:inline-block;background:' + (primary ? BLUE : '#fff') + ';color:' + (primary ? '#fff' : BLUE) + ';border:2px solid ' + BLUE + ';padding:10px 20px;border-radius:6px;font-weight:bold;font-size:1rem;cursor:pointer;margin:0 10px 10px 0;font-family:inherit', [text]); b.type = 'button'; return b; } function field(label, type, value) { var wrap = el('label', 'display:block;margin:0 0 10px;font-weight:600;font-size:.95rem', [label]); var inp = document.createElement(type === 'textarea' ? 'textarea' : 'input'); if (type !== 'textarea') inp.type = type; if (type === 'textarea') inp.rows = 3; inp.value = value || ''; inp.setAttribute('style', 'display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:10px;border:1px solid #b8c4d6;border-radius:6px;font-size:1rem;font-family:inherit;font-weight:400;color:#0b1f3f;background:#fff'); wrap.appendChild(inp); return { wrap: wrap, input: inp }; } function copy(text, btn, label) { var done = function () { btn.textContent = 'Copied!'; setTimeout(function () { btn.textContent = label; }, 1800); }; if (navigator.clipboard) navigator.clipboard.writeText(text).then(done, function () { prompt('Copy this:', text); }); else prompt('Copy this:', text); } function show(title, nodes) { box.textContent = ''; box.appendChild(el('div', 'display:block;font-size:1.6rem;font-weight:700;margin:0 0 14px', [title])); nodes.forEach(function (n) { box.appendChild(n); }); } var oops = function () { show('Something went wrong', [para(['Sorry, this page didn’t load just now. Please try again in a few minutes, or email ' + MAIL + '.'])]); }; if (q.get('r')) { show('Lead Market Forum', [para(['Opening the application…'])]); fetch(EXEC + '?json=1&r=' + enc(q.get('r')), { credentials: 'omit' }).then(function (r) { return r.json(); }) .then(function (j) { location.replace(j.url || FORM); }, function () { location.replace(FORM); }); return; } if (!q.get('re') || !q.get('rs')) { if (location.hash === '#refer') show('Refer a colleague', [para(['To refer a colleague, use the personal link in your LMF welcome email or in your Slack DM from Mark. Lost it? Message Ella (under Apps in Slack) refer link and she’ll send it again. Questions? Email ' + MAIL + '.'])]); return; } var me = { re: q.get('re'), rn: q.get('rn') || '', rs: q.get('rs') }; /* status from the signup script: Invited -> Applied -> Approved -> In Slack (colors for the little chips) */ var CHIP = { Invited: ['#eef2f7', '#41526b'], Applied: ['#fff4e0', '#8a5a00'], Approved: ['#e6f4ea', '#1a7f37'], 'In Slack': ['#1a7f37', '#ffffff'], Posted: ['#1a5fb4', '#ffffff'] }; var RULE = '10 Chips when you invite someone, 20 more when they apply, 20 more when they join and 30 more at their first post. 80 Chips per colleague is a free month.'; fetch(EXEC + '?json=1&re=' + enc(me.re) + '&rn=' + enc(me.rn) + '&rs=' + enc(me.rs), { credentials: 'omit' }) .then(function (r) { return r.json(); }) .then(function (j) { if (j.error === 'badlink') { show('This link didn’t work', [para(['Please use the link in your Slack DM from Mark, message Ella (under Apps in Slack) refer link for a fresh one, or email ' + MAIL + '.'])]); return; } if (j.error || !j.share) { oops(); return; } var blurb = 'I’m part of the Lead Market Forum, a private Slack group for leaders in lead gen, performance marketing, insurance, call centers and compliance. Real names, no pitching, really useful conversations. It’s free through December 31, and active members stay free. If you’d like in, request an invite here: ' + j.share; var name = field('Colleague’s name', 'text'); var email = field('Colleague’s email', 'email'); var note = field('A short note from you (optional, included in the email)', 'textarea', 'I think you’d get a lot out of this group.'); var send = button('Send invitation', true); var msg = para([], 'min-height:1.4em'); var list = el('div', 'display:block', []); /* Mark, Nov 4: no cap on referrals, but at most 12 invites waiting for an application (lifts when one applies) */ var waitLine = para([], 'color:#555;font-size:.9rem'); function drawWaiting() { waitLine.textContent = !j.limit ? '' : j.waiting >= j.limit ? 'You have ' + j.waiting + ' invites waiting for an application. Follow up with them: as soon as one applies, you can invite more.' : j.waiting ? j.waiting + ' of your invites ' + (j.waiting === 1 ? 'is' : 'are') + ' waiting for an application (you can have up to ' + j.limit + ' waiting at a time).' : ''; waitLine.style.color = j.limit && j.waiting >= j.limit ? '#b42318' : '#555'; } var refs = (j.referrals || []).slice(); /* folder-style tabs (Mark, Nov 3: "make them look like tab headings to what is below") */ var LINE = '#cfd8e3'; function tab(text) { var t = el('button', 'display:inline-block;font:inherit;font-size:.95rem;font-weight:700;padding:10px 14px;margin:0 6px -2px 0;border:2px solid ' + LINE + ';border-radius:8px 8px 0 0;cursor:pointer;position:relative', [text]); t.type = 'button'; return t; } var tabMine = tab(''); function chip(st) { var c = CHIP[st] || CHIP.Invited; return el('span', 'display:inline-block;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:700;background:' + c[0] + ';color:' + c[1], [st === 'Posted' ? 'Posted ✓' : st]); } function drawList() { tabMine.textContent = 'My Referrals (' + refs.length + ')'; list.textContent = ''; if (!refs.length) { list.appendChild(para(['No referrals yet. Your first one is a free month waiting to happen.'], 'color:#555')); return; } var count = function (s) { return refs.filter(function (x) { return s.indexOf(x.status) >= 0; }).length; }; var chips = refs.reduce(function (t, x) { return t + (x.chips || 0); }, 0); list.appendChild(para([bold(String(refs.length)), ' referred · ', bold(String(count(['Applied', 'Approved', 'In Slack', 'Posted']))), ' applied · ', bold(String(count(['In Slack', 'Posted']))), ' in Slack · ', bold(chips + ' Chips'), ' earned'], 'margin:0 0 14px')); refs.slice().reverse().forEach(function (x) { list.appendChild(el('div', 'display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #e3e8ef', [ el('div', 'display:block', [bold(x.name), el('div', 'display:block;color:#666;font-size:.85rem', [(x.day ? 'Referred ' + x.day + ' · ' : '') + (x.chips || 0) + ' Chips'])]), chip(x.status)])); }); list.appendChild(para(['Invited = we emailed them. Applied = they filled in the application. Approved = Mark or Farzin approved them. In Slack = they joined. Posted = they made their first post. ' + RULE], 'color:#666;font-size:.85rem;margin-top:14px')); } send.addEventListener('click', function () { var n = name.input.value.trim(), e = email.input.value.trim(); if (!n || !/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(e)) { msg.textContent = 'Please enter your colleague’s name and a valid email.'; msg.style.color = '#b42318'; return; } send.disabled = true; send.textContent = 'Sending…'; msg.textContent = ''; fetch(EXEC, { method: 'POST', credentials: 'omit', body: JSON.stringify({ re: me.re, rn: me.rn, rs: me.rs, name: n, email: e, note: note.input.value.trim() }) }) .then(function (r) { return r.json(); }) .then(function (res) { send.disabled = false; send.textContent = 'Send invitation'; if (res.ok) { msg.style.color = '#1a7f37'; msg.textContent = 'Sent! ' + n + ' just got your invitation, and you’re copied on it. Want to invite someone else?'; refs.push({ name: n, status: 'Invited', chips: 10, day: 'today' }); j.waiting = (j.waiting || 0) + 1; drawList(); drawWaiting(); name.input.value = ''; email.input.value = ''; return; } msg.style.color = '#b42318'; msg.textContent = res.skipped === 'already applied' ? 'Good news: ' + n + ' has already applied or is already a member.' : res.skipped === 'already invited by someone' ? n + ' has already been invited by another member, so we won’t email them twice.' : res.skipped === 'own address' ? 'That’s your own email address.' : res.skipped === 'waiting limit' ? 'You have ' + j.limit + ' invites waiting for an application. Follow up with them: as soon as one applies, you can invite more.' : res.error === 'email' ? 'Please check the email address.' : 'Sorry, that didn’t go through. Please try again in a few minutes.'; }, function () { send.disabled = false; send.textContent = 'Send invitation'; msg.style.color = '#b42318'; msg.textContent = 'Sorry, that didn’t go through. Please try again in a few minutes.'; }); }); var blurbBox = field('Ready-to-paste blurb (email, text, LinkedIn, Slack)', 'textarea', blurb); blurbBox.input.rows = 5; var copyBlurb = button('Copy blurb', true); copyBlurb.addEventListener('click', function () { copy(blurbBox.input.value, copyBlurb, 'Copy blurb'); }); var copyLink = button('Copy just the link', false); copyLink.addEventListener('click', function () { copy(j.share, copyLink, 'Copy just the link'); }); /* two tabs (Mark, Nov 3): Refer a colleague | My Referrals (n) */ var tabRefer = tab('Refer a colleague'); var paneRefer = el('div', 'display:block', [ para(['Hi ' + (j.first || 'there') + '! Know someone who belongs in the LMF? Every colleague you bring in can earn you ', bold('80 Chips, a free month'), ': 10 when you invite them, 20 more when they apply, 20 more when they join and 30 more at their first post.']), head('Send an invitation'), para(['We’ll email them an invitation from Mark and Farzin with your note, and copy you so you two can connect. Every application is still reviewed.'], 'color:#555;font-size:.95rem'), name.wrap, email.wrap, note.wrap, send, msg, waitLine, head('Or share your link'), para(['Anyone who applies through your link is credited to you automatically.'], 'color:#555;font-size:.95rem'), blurbBox.wrap, el('div', 'display:block', [copyBlurb, copyLink]) ]); var paneMine = el('div', 'display:none', [list]); function pick(mine) { paneRefer.style.display = mine ? 'none' : 'block'; paneMine.style.display = mine ? 'block' : 'none'; [[tabRefer, !mine], [tabMine, mine]].forEach(function (t) { t[0].style.background = t[1] ? '#fff' : '#eef2f7'; t[0].style.color = t[1] ? BLUE : '#5b6b82'; t[0].style.borderBottomColor = t[1] ? '#fff' : LINE; t[0].style.zIndex = t[1] ? '2' : '1'; }); } tabRefer.addEventListener('click', function () { pick(false); }); tabMine.addEventListener('click', function () { pick(true); }); var panel = el('div', 'display:block;position:relative;z-index:1;border:2px solid ' + LINE + ';border-radius:0 8px 8px 8px;padding:20px;background:#fff', [paneRefer, paneMine]); show('Your LMF referrals', [el('div', 'display:block;white-space:nowrap', [tabRefer, tabMine]), panel]); drawList(); drawWaiting(); pick(false); }, oops); })();