Auto-enrich new prospect rows and ping the rep in Slack

The moment a rep drops a new company domain into your Outbound Prospects sheet, it gets researched, written back to the row, and announced in Slack.

Deterministic Code
Google SheetsContext.devSlackSalesLead EnrichmentNotifications & Alerts

Build me a deterministic code workflow that auto-enriches new outbound prospect leads. I keep a Google Sheet called "Outbound Prospects" where reps drop new company domains throughout the day. The workflow should fire on every new row, enrich it, write the data back, and ping the rep in Slack.

Trigger: Google Sheets poll on new_row in the Outbound Prospects sheet. The sheet has at minimum a domain column (input) and an owner column holding the Slack handle of the rep who owns the row. The workflow should be configurable so I can point it at a different sheet or different column names later.

For each new row, take the value in the domain column and run these Context.dev steps in order:

1. Call Context.dev "Retrieve Brand Data by Domain" to pull company name, description, logo URL, HQ address, and social links (especially LinkedIn URL).

2. Call Context.dev "Classify NAICS Industries" on the same domain to get the primary NAICS code.

3. Call Context.dev "Scrape Screenshot" of the homepage (https://<domain>) to get a visual thumbnail URL.

Then call Google Sheets "Update Values" to write the enriched data back into the same row. Map the results to these columns: company_name, description, logo_url, naics_code, hq_city (extract from the brand address), linkedin_url (from socials), and screenshot_url. Only touch those columns. Leave anything else the rep typed alone.

Finally call Slack "Send a Message" to a configurable channel (default #prospecting). The message should tag the rep listed in the owner column and contain a one-line summary of the lead (company name, NAICS industry, HQ city) plus the screenshot URL so it unfurls inline.

Error handling: if any Context.dev call returns an error for the domain (bad domain, 404, timeout, etc.), write the literal string "lookup_failed" into the company_name column for that row and still post a Slack message tagging the rep so they know to research the domain manually. Do not crash the run on a single bad row.

Keep this as a code workflow, not an agent. The steps are fixed, the column writes are fixed, and the Slack format is fixed every time.

Additional information

What does this prompt do?
  • Watches your Outbound Prospects sheet and fires the second a rep adds a new row with a company domain.
  • Fills in company name, description, logo, NAICS industry code, HQ city, LinkedIn, and a homepage screenshot, written straight back into that row.
  • Posts a one-line summary into your prospecting channel and tags the rep listed in the owner column so they know their lead is ready.
  • If the lookup fails, marks the row as a failed lookup and still pings the rep so nothing slips through the cracks.
What do I need to use this?
  • A Google account with edit access to your Outbound Prospects sheet.
  • A Slack workspace and a channel where the alerts should land (for example, #prospecting).
  • A Context.dev account for the company lookups, industry classification, and homepage screenshots.
  • Your sheet should have a domain column for input and an owner column listing the Slack handle of the rep who owns the row.
How can I customize it?
  • Swap the destination channel, or DM the rep directly instead of posting in a shared channel.
  • Add or remove enrichment columns. Pull in employee count, founding year, or full address if you want more in the row.
  • Tighten the summary line that posts to Slack so it matches how your team likes to qualify leads at a glance.

Frequently asked questions

What triggers the workflow?
A new row appearing in your Google Sheet. As soon as a rep drops a domain into the Outbound Prospects tab, the workflow picks it up and starts enriching.
What happens if Context.dev cannot find the company?
The row gets marked as a failed lookup in the company name column, and the rep still gets a Slack ping so they can decide whether to research the domain manually.
Can I use a different sheet or a different column layout?
Yes. Point the workflow at any sheet, and tell it which columns hold the domain and the owner. The enrichment columns are configurable too.
Will the rep get pinged for every single new row?
Yes. Every new domain triggers a Slack message tagging whoever is listed in the owner column, so the right person always sees their lead.
Does this overwrite data the rep already typed?
No. The workflow only writes into the enrichment columns (company name, description, logo, industry, city, LinkedIn, screenshot). Anything the rep put in other columns is left alone.

Stop hand-researching every new lead.

Connect Google Sheets, Context.dev, and Slack once, and Geni enriches every new prospect row the moment it lands.