I recently built a lean intent engine that integrated directly with Salesforce and began surfacing my highest-value accounts within 48 hours. I want to walk you through the practical, no-nonsense approach I used so you can replicate it quickly—using tools you probably already have or can spin up in a day. This is about delivering impact fast: an MVP that identifies accounts showing buying intent, scores them, and pushes prioritized leads into Salesforce for your reps to act on immediately.
Why build an intent engine, and why 48 hours?
Intent data turns passive prospects into active opportunities. Instead of chasing lists, you engage accounts when they’re already researching solutions. I set a 48-hour target because teams need momentum—sales and marketing should see value fast to continue investing. That constraint forces simplicity: focus on high-signal sources, deterministic rules, and reliable connectors rather than complex models that take weeks to train.
What I considered before starting
Before writing a single line of code I asked three questions:
Answering these kept the scope tight. For most B2B sellers, high-signal intent comes from intent data vendors (Bombora, G2), site behavior (page views, product pages), and technographic triggers (built with tools like BuiltWith or Clearbit). Mapping to accounts usually relies on reverse-IP or email-to-domain heuristics and enrichment APIs. For scoring, start with weighted rules—no ML required for the MVP.
Architecture overview I used
The architecture had three layers:
I used lightweight services: Segment to collect website events, a small AWS Lambda to orchestrate API calls, Clearbit for enrichment, and Workato for Salesforce sync. You can swap in Zapier or MuleSoft depending on what your org supports.
Step-by-step: building the MVP in 48 hours
Here’s the practical sequence I followed. Adjust based on tools you already have.
Decide which signals will count (e.g., Bombora topic surge, G2 buyer intent, multiple product page views, demo request). Define the schema for your intent event: {account_domain, signal_type, signal_value, timestamp} and the account score object in Salesforce (e.g., Account.Intent_Score__c, Account.Latest_Intent_Signal__c, Account.Intent_Last_Seen__c).
I started with two quick wins: Bombora and website events.
If you have G2/TrustRadius data, pull their intent exports. For the fastest route, use vendor webhooks or exports that can be polled from a Lambda or serverless function.
Enrichment is critical. For any domain or IP I call Clearbit (or ZoomInfo if available) to get firmographic data—company name, industry, revenue band, employee count, Salesforce Account ID (if you maintain a mapping). If a Salesforce Account ID doesn’t exist, the engine can use domain-based matching and create a placeholder account or lead with a special flag.
For speed, I avoided ML. I implemented a weighted rule set in a Lambda function (or a small Python script) that adds points for:
Thresholds determine actions: Score ≥100 = high priority, 60–99 = nurture, <60 = monitor.
I created or updated three fields on Account: Intent_Score__c (number), Intent_Category__c (High/Medium/Low), Intent_Details__c (JSON blob of signals). Using Workato (or a direct API call via simple Salesforce client), I upserted accounts and set tasks for sales reps when accounts crossed a high-priority threshold.
High intent accounts triggered a Salesforce Flow that creates a Task and optionally posts a message to a Slack channel. I routed accounts to owners using existing account ownership rules; if no owner was present, I created a queue and assigned to an SDR.
I validated mapping accuracy, checked enrichment rates, and ensured there were no duplicates. I documented how the score is calculated and set up a basic dashboard in Salesforce and a quick Looker Studio (or Chartio) dashboard showing intent trends.
Tools I recommend (quick comparison)
| Purpose | Fast option | Enterprise option |
|---|---|---|
| Reverse-IP / Enrichment | Clearbit Reveal | ZoomInfo / Dun & Bradstreet |
| Intent provider | Bombora / G2 | 6sense / TechTarget |
| Event collection | Segment | mParticle / CDP |
| Orchestration | AWS Lambda + Python or Workato | MuleSoft / Boomi |
| CRM sync | Workato / Zapier | MuleSoft / Salesforce Connect |
Common mapping pitfalls and how I avoided them
Mapping intent to accounts is the trickiest part. I focused on three mitigations:
What I’d iterate on after the MVP
Within weeks I layered in improvements: smoothing the score with recency decay, adding a simple ML model to predict conversion probability, integrating email engagement signals, and building a richer UI in Salesforce for reps to view intent histories. But none of those are required to get value in the first 48 hours.
If you want, I can share the Lambda script and the Workato recipe I used to get this running—drop me a note on B2B News or ping via the contact form on https://www.b2b-news.uk and I’ll make the templates available.