Integrating External Intent Data into Salesforce
Integrating external intent data can provide richer B2B signals directly in Salesforce to help Sales and RevOps teams prioritize leads and target accounts more intelligently. External intent data refers to purchasing signals generated outside your organization (for example, visitor search and content engagement data from third-party sources). By importing these signals into Salesforce, companies can align sales and marketing on active opportunities and automate data-driven workflows.
With careful design, a Salesforce consultant can bring in intent signals via custom objects, API calls, or native connectors, then score and segment records based on those signals. This deep-dive covers integration approaches and implementation patterns. From lightweight API ingestions to Salesforce Data Cloud/CDP pipelines along with examples of how to map intent data into Accounts and Leads. We’ll also explore practical use cases such as account-based marketing and lead qualification powered by intent, and show code examples for calling intent data APIs and updating Salesforce fields. All guidance is presented in a technical, concise tone appropriate for senior Salesforce developers and consultants.
Related guide: Salesforce Data Integration: Strategy, Mapping, and Synchronization Guide
What Are External Intent Data Signals?
External intent data comes from third-party sources tracking company-level interest in specific topics or products. For example, vendors like Bombora, ZoomInfo, Apollo, and 6sense compile anonymous buying signals by monitoring web searches, content consumption, and other digital behavior. These signals (often called “surge” or “intent” topics) indicate when a company is researching certain solutions. For instance, a buyer intent signals integration might reveal that Company A is currently researching “cybersecurity solutions,” flagging them as a high-potential prospect.
In Salesforce, intent data typically maps to account or contact records. A common data model is to use a custom object (or multiple fields) on the Account to store intent topics, intensity scores, and timestamps. For example, ZoomInfo Salesforce integration creates an Intent custom object related to Account, capturing fields like Intent Signal Score and Intent Issue Date. Bombora’s Salesforce app similarly embeds intent topics into account and leads records via a Lightning component. Regardless of source, external intent data augments your internal CRM data (closed-won history, company profile, etc.) with pre-purchase signals. In essence, “your Salesforce knows how customers behave after they buy; intent data shows how they behave before they buy”.
The business benefit is that Sales and Marketing can identify and engage companies when they are actively researching. Instead of a spray-and-pray approach, teams use intent signals to prioritize outreach and tailor messaging to companies showing buying intent. As the data show, combining first-party CRM data and third-party intent signals into “one unified view” improves conversion rates and pipeline predictability. In the next sections, we’ll look at specific integration methods to bring this data into Salesforce.
The business benefit is that Sales and Marketing can identify and engage companies when they are actively researching. Instead of a spray-and-pray approach, teams use intent signals to prioritize outreach and tailor messaging to companies showing buying intent. As the data show, combining first-party CRM data and third-party intent signals into “one unified view” improves conversion rates and pipeline predictability. In practice, this visibility is most effective when teams maintain a disciplined approach to pipeline generation and execution, such as a 60/40 allocation between prospecting and closing activities.
Integrating External Intent Data with Salesforce
There are several architectural approaches to connect external intent signals into Salesforce. As a senior developer, you can choose a method based on your platform version and tooling. Common patterns include:
AppExchange or Native Connectors
Some vendors provide a managed package or official connector to Salesforce (e.g., Bombora’s “Company Surge” app or ZoomInfo’s Intent sync). These apps typically install custom objects and Lightning components. For example, Bombora’s package “allows users to embed customer intent data directly into the Account and Lead records” via a Lightning Web Component. Similarly, setting up Intent and Scoops custom objects to export intent signals to accounts. These connectors often handle authentication and batch syncing automatically.
Salesforce Data Cloud / CDP Ingestion
If you use Salesforce Data Cloud (formerly CDP), you can bring intent data into the Data Cloud’s Buyer Intent model. For instance, Demandbase’s documentation explains that Demandbase Intent integrates into Salesforce Data Cloud via a native connector (using SFTP or Data Streams), populating a “Buyer Intent” Data Model object. After ingestion, you use Data Cloud’s segmentation tools to build targeted audiences. In this model, intent data flows through Data Cloud rather than directly into Sales/Service Cloud objects.
Custom API Integration
For full flexibility, develop custom code or middleware that calls the intent provider’s API and writes data into Salesforce objects. For example, use Apex HttpRequest callouts or external ETL tools. You might fetch intent topics (by company domain, e.g. Bombora’s /surge API) and upsert Account fields or create records. This approach is known as intent data API integration. It requires handling auth (API tokens or OAuth) and respecting platform limits. (See code snippet below.)
Middleware / Data Platform
Use an ETL or integration platform (e.g., MuleSoft, Zapier, Informatica) to pull intent signals and push them into Salesforce via Bulk API or SOAP. Some teams also implement a Google Sheets or CSV-based pipeline (see Coefficient’s example of exporting intent via CSV and combining in a spreadsheet).
Salesforce Connect / External Objects
If the provider exposes OData or REST services, you can set up an External Data Source in Salesforce Connect to surface intent data as “virtual” objects. This lets you join external intent records to Accounts without storing data in Salesforce, though it may have limitations on updates and list views.
Each method has trade-offs. Managed packages (AppExchange) are easiest to install but less customizable. Custom API Salesforce integration offers maximum control (for example, you can filter topics or map only certain scores) but requires developer effort and maintenance. The choice often depends on whether your organization prefers leveraging vendor tools or building a tailored solution.
Custom API-Based Integration
For fine-grained control, you can write Apex (or an external script) to call an intent provider’s REST API and update Salesforce. For instance, here’s a simplified example in Python (you could similarly use Apex HTTP) to fetch intent topics from an API and upsert into Salesforce via its REST API:
import requests
# Example: Fetch Bombora Company Surge topics by domain
api_key = ‘YOUR_BOMBORA_API_KEY’
domain = ‘examplecorp.com’
intent_resp = requests.get(
f’https://api.bombora.com/v2/surge/topics?api_key={api_key}&domain={domain}’
)
intent_resp.raise_for_status()
surge_topics = intent_resp.json().get(‘topics’, [])
# Upsert into Salesforce via Bulk API (pseudocode)
sf_data = []
for topic in surge_topics:
sf_data.append({
‘Company_Domain__c’: domain,
‘Intent_Topic__c’: topic[‘topic’],
‘Intent_Score__c’: topic[‘intent_score’],
‘Intent_Issue_Date__c’: topic[‘issue_date’]
})
# Use Salesforce Bulk API to upsert sf_data list to a custom object “External_Intent__c”
# (Alternatively, match by Account domain or ID and update Account fields)
This illustrates a generic pattern: call the intent API, parse JSON, then push data into Salesforce (as custom object records or fields). In Apex, you’d use HttpRequest and JSON.deserialize to do the same. Ensure you Bulkify these operations (e.g. batching dozens of Account updates at a time) and use Named Credentials for security. Salesforce also supports periodic scheduling via Schedulable Apex or Platform Events to refresh intent data on a daily/weekly basis (many intent providers update on a weekly cadence).
Note that when using APIs, you must map the external “company” identity to your Salesforce record (usually by domain name, Salesforce Account ID, or a unique Company ID). In Coefficient’s example, they match by domain or custom identifiers. Always verify the match quality to avoid misattribution.
Data Model and Custom Objects
Once intent data is in Salesforce, how should it be stored and displayed? Two common approaches:
Custom Object (one-to-many)
Create an Intent or Intent Signal custom object related to Account (and optionally Lead). Each record represents one topic or signal instance, with fields like Topic, Score, Audience Strength, First Seen, Last Seen, etc. Five fields for intent (score, strength, location, etc.) and advises creating one record per topic. This allows multiple intent topics per account, each with its own details. On the Account page layout, add a related list or Lightning component to display these records.
Custom Fields on Account/Lead
Alternatively, use fields on the Account to store summary intent data. For example, add “Surge Topics”, “Intent Score”, or an “Interest Level” field. This is simpler (no extra object) but less flexible if tracking multiple topics. Some integrations use this for a single primary topic or score.
Whichever you choose, ensure your field-level data captures the strength of interest. Many providers score topics on a scale (e.g. 0-100). You could translate that into an Account field like Intent_Score__c or set flags. For example, if any topic’s score exceeds a threshold, mark Intent_Flag__c = TRUE. These fields then feed into reports and automations.
It’s also advisable to include context: timestamps (when data was captured) and topic names. That way, users see “Company Surge” topics over time. Bombora’s solution, for example, curates intent into a Lightning component so that inside Salesforce, reps “see exactly which prospects are in the market for the products you sell”. ZoomInfo’s app populates intent via a custom Intent object or custom fields that admins add to page layouts.
Finally, consider cleanup: intent data is temporal. You might want to expire or refresh it periodically (e.g., clear old signals after 30 days). Use scheduled jobs to purge stale intent records if needed, keeping your CRM tidy.
Use Cases: ABM and Lead Qualification
Once external intent data is integrated into Salesforce, it enables powerful use cases:
Account-Based Marketing (ABM)
In ABM, teams target specific named accounts. External intent data can dynamically adjust which accounts to prioritize. For instance, if Account X suddenly shows high intent for “financial analytics software”, Marketing can launch an ABM campaign to that account. Intent allows “personalized segmentation” where segments are built on attributes like intent strength and keywords. In Salesforce, you might create a Campaign or Marketo/Pardot list based on accounts with intent for certain topics. By combining intent data for account-based marketing with CRM account attributes (industry, size), you sharpen your targeting. In practice, a segment filter might be “Accounts where Intent_Topic__c includes ‘cloud security’ and Employee_Count__c > 1000.” This approach ensures ABM efforts focus on accounts actively researching relevant solutions, rather than a static list.
Lead Scoring and Qualification
Sales teams often use lead scores to prioritize outreach. Now imagine enhancing the score with intent. If a lead’s company shows intent for your product category, boost its score. A simple model: Lead_Score = Lead_Score + Intent_Score * Weight. In Salesforce, you could implement this via a formula field or a Flow. For example, if an account’s highest intent topic score is 85, set Intent_Score__c = 85, then add it to a composite score field. This intent-based lead qualification means that a lead from a company researching your solution gets a higher score, pulling them to the top of the queue. According to industry stats, prospects identified by intent data “close 35% faster and have 60% higher LTV”, underscoring the value of intent in scoring.
Cross-sell and Upsell Triggers
For existing customers, intent data can signal expansion opportunities. If a current customer’s account suddenly surges on “AI analytics tools”, the Customer Success team can proactively reach out. In Salesforce, a trigger (Apex or Flow) could detect when a new intent record is added to a customer’s account, and alert an Account Manager to schedule a call.
Forecasting & Reporting
By segmenting pipelines by intent signals, management gains insight into “in-market” deals. For example, reports can show how many opportunities involve accounts with recent intent activity. This helps RevOps measure the effectiveness of intent-driven strategies.
In all these cases, the integration bridges sales and marketing: intent signals align both teams around “what companies are actually interested in”. It moves organizations from reactive outreach to proactive engagement.
Technical Implementation Tips
Here are some best-practice tips for a robust integration:
- Authentication and Limits: Use Named Credentials or Connected Apps for external API calls. Respect API limits on both ends. For example, it asks you to set reasonable Salesforce API limits so the integration stops if it hits those limits. Likewise, some intent APIs allow only X calls per minute, plan your integration frequency accordingly.
- Incremental Sync: Avoid full data loads every time. Instead, fetch only updated or new intent signals. Many providers (like Demandbase) update intent weekly, so you might schedule a weekly or nightly sync. In more event-driven architectures, teams may also use change data capture in Salesforce to publish downstream updates automatically when intent-related fields or records change. Use fields like “Last Modified Date” on the intent provider side if available, or fetch by time range.
- Data Mapping: Clearly map intent topics to your sales context. For example, tag each topic with your product categories. If the API returns 50 topics, you might filter only those relevant to your solutions. This reduces noise and keeps data actionable.
- Security: External intent data can be sensitive. Ensure only authorized profiles see the data in Salesforce. Use permission sets to control who can view the intent custom object or fields. If using Connected Apps, enforce OAuth scopes minimally.
- Monitoring and Alerts: Build monitoring for the integration. For example, if API sync fails, send an email to admins. Setting up system notifications for credential expiry or API limit issues. Logging each sync run (success/failure count) helps troubleshoot.
- Scalability: If you have thousands of accounts, plan for scalability. Use batch Apex (for Apex-based solution) or Bulk API (for external scripts) to update records in chunks (e.g., 200 records per transaction). This avoids hitting governor limits.
- Testing: Test in a sandbox first. Ensure your integration user has appropriate API Enabled and object permissions (the integration user must be API-enabled). Also test partial failures, e.g., if one account update fails, log it but continue processing others.
- Data Cloud Option: If your org subscribes, evaluate using Salesforce Data Cloud (CDP) for intent. As Demandbase documentation describes, Data Cloud can natively ingest intent, which automatically makes it available for segmentation without custom build.
Finally, keep documentation of your intent topics and scores so the sales team understands the meaning (similar to an internal knowledge article). For example, note that a topic’s Intent Score is on a 0-100 scale where 70+ is considered “high intent.” This transparency aids adoption.
Sample Code: Apex Callout for Intent API
Below is an illustrative Apex snippet to fetch intent via a callout and update a Salesforce Account. (In a real integration, wrap this in a @future or Queueable class to avoid blocking transactions.)
// Named Credential “IntentAPI” holds the base URL and Auth.
HttpRequest req = new HttpRequest();
req.setEndpoint(‘callout:IntentAPI/company/12345/intent’);
req.setMethod(‘GET’);
Http http = new Http();
HTTPResponse res = http.send(req);
if (res.getStatusCode() == 200) {
// Parse JSON response from intent API (pseudocode).
List<IntentTopic> topics = (List<IntentTopic>) JSON.deserialize(res.getBody(), List<IntentTopic>.class);
List<Account> accountsToUpdate = new List<Account>();
for (IntentTopic it : topics) {
// Assume IntentTopic has fields ‘topicName’ and ‘score’
// Map to Account by some logic, e.g., domain.
String domain = it.topicName.substringAfter(‘@’);
Account acc = [SELECT Id, Intent_Score__c FROM Account WHERE Website LIKE :(‘%’+domain)];
if (acc != null) {
acc.Intent_Score__c = it.score;
accountsToUpdate.add(acc);
}
}
update accountsToUpdate;
}
This illustrates the flow: perform an HTTP GET on the intent endpoint, deserialize JSON, match to Salesforce records, and update. In practice, you would add error handling, batch processing, and use appropriate fields.
Summary
Integrating External intent data into Salesforce gives sales and RevOps teams a powerful competitive edge. By importing third-party buying signals (for example from Bombora, ZoomInfo, or Apollo) into custom objects or fields in Salesforce, you create a unified view of account interest. In practice, this means easier account-based marketing (leveraging intent data for account-based marketing), smarter lead scoring (intent-based lead qualification), and tighter marketing-sales alignment.


Leave Comment
Was this blog helpful?
Was this blog helpful?