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.
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?
What happens if Context.dev cannot find the company?
Can I use a different sheet or a different column layout?
Will the rep get pinged for every single new row?
Does this overwrite data the rep already typed?
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.