Score Supabase waitlist signups and alert sales in Slack

By General Input

When someone joins your waitlist, research their company, score them against your ICP, save the contact to HubSpot, and post a one-paragraph summary in Slack.

Integrations

  • Supabase
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Trigger this workflow whenever a new row is inserted in my Supabase waitlist table. I will set up a Supabase database webhook (Project > Database > Webhooks) that fires on INSERT and posts the payload to this workflow's incoming webhook URL. The trigger type is a standard incoming webhook.

When a new signup lands, do this end to end:

1) Read the incoming Supabase webhook payload. The payload includes the new row under a record field along with the table name and event type. To make sure you have the freshest data and the full column set, call Supabase Get Row on the waitlist table filtered by the row id from the payload. Pull every column so you can use anything available (email, name, source, referral, signup_reason, etc.) in the downstream steps.

2) Extract the company domain from the email. If the domain is a common personal address (gmail.com, yahoo.com, outlook.com, hotmail.com, icloud.com, proton.me, aol.com, live.com, msn.com), skip the company research step entirely. Tag the lead as 'personal email' in the Slack alert and the HubSpot note so the rep knows there is no enrichment to read.

3) For business domains, do web research and build a short company profile covering: company name and a one-line description of what they do, industry and a rough employee headcount band, tech stack and what they sell into, and anything notable from the last 90 days (funding rounds, product launches, hiring spikes, leadership moves).

4) Score the lead against this ICP and pick exactly one tier. ICP: B2B SaaS, 20 to 500 employees, technical buyer (developer tools, internal platforms, AI products). Tiers: 'hot' means clean ICP match plus recent momentum and ready for outbound today; 'warm' means partial fit, worth a single touch; 'cold' means out of ICP or not enough signal, queue but no rush. If the email was personal, default to 'cold' unless the signup_reason text suggests otherwise.

5) Create the lead in HubSpot using Create Contact. Map fields like this: email is the signup email; firstname and lastname come from the row if present, otherwise leave blank; company is the researched company name; website is the company domain; lifecyclestage is 'salesqualifiedlead' for hot, 'marketingqualifiedlead' for warm, and 'lead' for cold. Put the full research summary (one paragraph plus the score and the reasoning) into a notes property or the description field so the rep sees the context inside HubSpot too. Capture the new HubSpot contact id so you can link to the record from Slack.

6) Send a Slack Bot message to the #signups channel using Send a Message. The reader is a salesperson scanning on mobile who needs to decide in under ten seconds whether to fast-track outreach. Format the message exactly like this: lead with the score emoji (🔥 hot, 🌤️ warm, ❄️ cold), then the person's name and company on the same line. Underneath, write one tight paragraph of three or four sentences covering who they are, what the company does, and why they matter (or why they do not). End with the signup email and a 'View in HubSpot' link to the new contact record. No bullet lists, no headings, no walls of text. Keep it crisp.

Error handling: if web research fails or returns nothing useful, still create the HubSpot contact and still send the Slack alert, just mark the company section as 'no research available' so the rep knows to look manually. Never silently swallow a signup.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account