Inbound API
How it works
Kernel operates differently from static database providers, like ZoomInfo and Dun & Bradstreet. Kernel collects and classifies data in real-time, which means the process is asynchronous. You initiate an enrichment task and periodically poll for results as data becomes available.
Understanding Data Availability (Fast vs. Slow)
Asynchronous Population: The output JSON payload populates gradually. When you poll, fields for which data hasn't been found or processed yet will typically have a value of
null
.Fast Data Points: For example, certain firmographic data points are usually available relatively quickly (potentially within minutes). These include:
Country
State/Region
Industry
Headcount
Headcount Growth
Slower Data Points: Other data points may require more extensive analysis or different data sources and can take longer (potentially hours) to populate.
Polling Strategy: Your polling logic should handle partially populated payloads and continue polling until the
status
issuccess
orerror
. The specifics regarding the fast/slow data points depend on your custom setup.
Input Data Requirements:
salesforceId (string): Required. This is the Salesforce record ID (e.g., Lead IDs often start with 00Q, Account IDs with 001).
You must provide either:
linkedinUrl (string): The LinkedIn profile URL (e.g., https://www.linkedin.com/company/example).
OR both name (string) and website (string).
Contextual Data (Optional but helpful): While the core requirement is above, providing additional context like emailDomain (e.g., kernel.ai from [email protected]) will be beneficial depending on the specific workflow configuration, even if it is not strictly required by the current endpoint setup. Check with your Kernel contact to see if these are utilized.
Data Privacy: Do not send Personally Identifiable Information (PII) such as first name or last name, unless explicitly part of the agreed schema. You should send email_domain if available and relevant to the configuration.
Note the executionId. You will need this unique identifier to poll for results.
400 Bad Request
POST /api/v1/inbound/enrichment HTTP/1.1
Host:
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 143
{
"salesforceId": "001j000000HWb16AAD",
"linkedinUrl": "https://www.linkedin.com/company/kernelai/",
"name": "Kernel",
"website": "https://kernel.ai/"
}
{
"status": "starting",
"executionId": 12345
}
Because enrichment happens asynchronously, you need to periodically check the status of your request using the executionId.
The executionId from the POST request
12345
Note the executionId. You will need this unique identifier to poll for results.
400 Bad Request
500 Internal Server Error
GET /api/v1/inbound/enrichment?executionId=12345 HTTP/1.1
Host:
x-api-key: text
Accept: */*
{
"status": "fast-success",
"message": "Fast enrichment successful",
"Kernel_Duplicate_CRM_ID__c": null,
"Kernel_Duplicate_account__c": null,
"Kernel_Parent_Child_type__c": null,
"Kernel_Parent_Child_reasoning__c": null,
"Kernel_Is_website_working__c": null,
"Kernel_Out_of_Business_Reasoning__c": null,
"Kernel_EME_Operations_Reasoning__c": null,
"Kernel_Cleaned_website__c": null,
"Kernel_Who_does_the_customer_sell_to__c": null,
"Kernel_Company_Name__c": "Kernel",
"Kernel_Parent_company__c": null,
"Kernel_Website_status__c": "Working",
"Kernel_Headcount": 29
}
Last updated