Slack brief for multi-threading new Stripe customers

When a first-time customer pays, pull every public contact and social handle from their website, then send a multi-threading brief to your CS lead in Slack.

Agentic Task
StripeWebsite Contacts ScraperSlackCustomer SupportSalesNotifications & AlertsLead Enrichment
PromptCreate

Build me an agent workflow that fires every time a brand-new paying customer lands in Stripe and arms our CS lead to multi-thread the account before the relationship is one buyer deep.

Trigger: a Stripe webhook for invoice.payment_succeeded. Only continue if this is the customer's first successful payment (skip renewals and any subsequent billing cycle) so the workflow runs exactly once per customer, not every month. Read the customer ID off the invoice and use Stripe's Retrieve Customer to pull the full customer object.

From that customer, take the email address and grab the root domain (everything after the @). If the domain is a personal provider like gmail.com, outlook.com, yahoo.com, icloud.com, or hotmail.com, stop and post a short Slack note saying we cannot enrich a personal-email customer, and skip the rest. Otherwise, also grab the customer's name, description, and any website field if Stripe has one.

Then call Website Contacts Scraper's Scrape Contacts on that root domain. We want every public email, every phone number, and every social profile link the scraper exposes (LinkedIn, Twitter/X, Instagram, YouTube, TikTok, Facebook, and any others returned).

Now build a customer-expansion brief from what came back. Rank the emails by role pattern: founder@, ceo@, coo@, cto@, head-of-*@, vp-*@, ops@, revops@, and sales@ outrank generic info@, hello@, contact@, support@, and team@. For each ranked contact, label the role you inferred from the email pattern. Flag a likely economic buyer (founder/CEO/CFO-style inboxes) and a likely champion (ops/product/operator-style inboxes) where you can tell them apart. List every social handle so the CS lead can warm up the account on LinkedIn or send a quick comment on a recent post. If the scraper returned nothing usable, say so plainly instead of fabricating contacts.

Post the brief as a Slack message via Send a Message. The recipient should be configurable (a DM to the CS lead by default, but easy to switch to a shared CS channel). The message should lead with the customer name, then the ranked expansion contacts, then the social handles, then the champion-vs-economic-buyer flags, then a one-line suggestion of who to reach out to first and why.

Important: this fires once per customer, never on renewals or plan changes. Treat any obvious failures (personal email domain, scraper returns empty, missing website) as a successful but short Slack message rather than a hard error, so the CS lead always hears something when a new customer pays.

Additional information

What does this prompt do?
  • Fires the moment a brand-new customer's first invoice is paid in Stripe, and skips renewals so each account only triggers it once.
  • Pulls every public email, phone number, and social profile (LinkedIn, Twitter, Instagram, YouTube, TikTok) from the customer's company website.
  • Ranks the strongest expansion contacts by role signal, with founder, CEO, ops, and sales addresses pushed above generic info inboxes.
  • Sends the finished brief as a Slack message to your CS lead so they can multi-thread beyond the single buyer who paid.
What do I need to use this?
  • A Stripe account where you can add a webhook for first-time successful payments.
  • A Slack workspace where your CS lead can receive a direct message from the workflow.
  • A Website Contacts Scraper account (via RapidAPI) for pulling public contact details from the customer's domain.
How can I customize it?
  • Send the brief to a shared CS channel instead of a single person, or fan it out to the account owner plus the CS lead.
  • Adjust which email patterns count as champion versus economic buyer signals so the ranking matches your sales motion.
  • Add filters before the brief runs, like only firing above a certain plan tier, deal size, or region.

Frequently asked questions

Will this fire on renewals or upgrades?
No. It only runs the first time a given customer successfully pays an invoice, so existing customers will not retrigger it on every billing cycle.
What happens if the customer does not have a real company website on file?
If the email domain is a personal provider like gmail.com or the website returns no public contacts, the workflow posts a short note in Slack explaining there was nothing to enrich, so your CS lead is not left wondering.
Can the brief go to a Slack channel instead of a direct message?
Yes. The recipient is just a setting on the workflow, so you can point it at any channel, group DM, or individual teammate without rebuilding anything.
How does it decide who the champion versus economic buyer is?
It looks at the role hidden in each public email address. Founders, CEOs, and revenue leaders are flagged as likely economic buyers, while ops, product, and operator inboxes are flagged as likely champions.
Will it backfill customers who paid before I turned this on?
No. It only reacts to new payments going forward. To enrich older accounts, you can run the underlying enrichment as a one-off workflow on a list of domains.

Stop losing expansion to one-thread accounts.

Connect Stripe, Slack, and Website Contacts Scraper once, and Geni briefs your CS lead the moment a brand-new customer pays.