Enrich and score new NocoDB leads before sales sees them
Every new row in your NocoDB leads table gets researched, scored against your ideal customer, and pushed to HubSpot when it is worth a call.
When a new row is added to my NocoDB leads table, enrich and qualify it before anyone on my team touches it. Use a webhook trigger so this runs immediately on each new record.
Trigger setup: NocoDB sends outgoing webhooks natively. In NocoDB, open the leads table, go to Table > Details > Webhooks, add a webhook on the After Insert (record created) event, and point it at this workflow's webhook URL. The incoming payload carries the newly created row, including its record id and field values. Tell me the webhook URL to paste into NocoDB when the workflow is set up, and ask me for my base id and table id if you need them for the write back step.
Step 1, decide whether the row is workable. Read the incoming record and look for anything that identifies the company: a company name, a website URL, or the domain of a work email address. If none of those are present, or the only email is a free consumer address such as gmail.com, outlook.com or yahoo.com with no other company signal, stop there. Do not guess, do not write anything back, and do not create a HubSpot contact. Leave the row untouched so a human can look at it.
Step 2, research the company. Starting from whatever identifier the row gave you, work out what the company actually does, what industry it operates in, and roughly how many employees it has. Read the company's own website where you can find it. Prefer the company's own pages over third party summaries. Keep the research proportionate: you are qualifying a lead, not writing a report.
Step 3, score the fit. Score the lead from 0 to 100 against my ideal customer profile. Ask me to describe my ideal customer during setup, covering the sectors I sell to, the company sizes that work, the regions I cover, and any obvious disqualifiers, and bake that description into the workflow so the scoring is consistent every run. Along with the score, write a single sentence of rationale that says why the score is what it is, in plain language a rep can read in two seconds. Something like "Mid sized UK logistics firm, 200 staff, runs its own fleet, strong match for our routing product." Never write a rationale longer than one sentence.
Step 4, write the results back to the same row. Use the NocoDB Update Table Records operation, targeting the record id that came in on the webhook, and fill in the industry, company size, fit score and rationale columns. Do not create a new row and do not touch any other record. If one of those columns does not exist yet, tell me which one is missing rather than silently dropping the value.
Step 5, push qualified leads to the CRM. Only when the fit score clears my threshold, use the HubSpot Create Contact operation to add the lead to HubSpot, mapping across the email, first and last name, company and website from the row, and storing the fit score on a HubSpot contact property so it is visible and filterable in the CRM. Ask me during setup which threshold to use, defaulting to 70, and which HubSpot property should hold the score. Leads below the threshold are scored and written back to NocoDB but are not sent to HubSpot at all, so the CRM does not fill up with unqualified rows.
Step 6, alert sales only when it matters. Use the Slack Send a Message operation to post to my sales channel only when the fit score is high, at or above the same threshold. The message should name the company, give the score, quote the one line rationale, and include the website and the contact's email so a rep can act without opening anything else. Do not post anything for low or mid scoring leads. The whole point is that the channel stays quiet unless the lead is genuinely worth a look, so the team trusts the ping.
If research fails for a row, for example the website is unreachable, still write back what you do know and set the rationale to say the research was inconclusive, rather than leaving the row half filled with no explanation. Process one record per webhook delivery and keep the whole run fast enough that the row is enriched before anyone opens the table.
What does this prompt do?
- Watches your NocoDB leads table and starts working the moment a new row appears, before anyone on your team opens it.
- Researches the company behind the lead from whatever the row gives you: a company name, a website, or just the domain in an email address.
- Writes the industry, company size, a fit score and a one-line rationale straight back onto the same row, so the table becomes the qualified list.
- Adds strong leads to HubSpot with the fit score saved on the contact, and pings your sales channel in Slack only when the score is high.
What do I need to use this?
- A NocoDB base with a leads table, and permission to add a webhook to that table
- Columns on the table for industry, company size, fit score and rationale (add them first if they are not there yet)
- A HubSpot account where new contacts can be created, plus a property to hold the fit score
- A Slack workspace and the channel your sales team actually watches
- A short description of your ideal customer: sectors, company size, region, and anything that makes a lead a good one
How can I customize it?
- Move the score threshold up or down to control how much reaches HubSpot and how often Slack gets pinged.
- Rewrite the ideal customer description in your own words, and the scoring follows it without any other changes.
- Change which columns get filled in, or add your own, such as headquarters location or a suggested owner.
- Send the alert to a different Slack channel, or keep Slack for only the very best leads and let the rest sit in NocoDB.
FAQs
Can NocoDB really tell us the second a new lead lands?
What if the new row only has an email address and nothing else?
Does every lead get pushed into HubSpot?
Will this fill our Slack channel with noise?
What happens to the leads that do not score well?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.
Stop hand researching every lead that lands in your table.
Point this at your NocoDB leads table and your team only sees leads worth calling, already scored and already explained.