Universal Enrichment helps turn incomplete lead data into valuable, actionable information.
It connects to external services to fill in missing lead details, validate leads, and add valuable context — helping you keep data accurate, consistent, and ready to use.
Overview
Universal Enrichment improves lead data during processing.
It connects to a wide range of external services to enhance, validate, and contextualise lead information.
Depending on the setup, Universal Enrichment can:
- Append missing lead details — such as job title, address, or company revenue — from external data providers (e.g. ZoomInfo, Apollo, HubSpot, and others).
- Append intent data — by connecting to intent-data providers that deliver behavioural or interest-based signals.
- Append custom metadata — by connecting to internal customer systems to include platform-specific data like CRM IDs, account tiers, or campaign references.
- Connect to validation services — to verify key information such as email addresses or phone numbers and improve data accuracy.
The result is cleaner, richer, and more reliable lead data that supports better targeting, routing, and decision-making across campaigns.
Please note:
- Universal Enrichment follows a bring-your-own-license model. You must supply valid access keys for any third-party services you wish to connect.
- Now available in the Enrichment tab (previously Initial Enrichment).
Setup Process
The information below is provided for context.
At this stage, our team assists with the setup of Universal Enrichment. We’ll configure the integration based on the API documentation and access details you share. To keep things stable, we recommend avoiding manual adjustments for now.
Adding Universal Enrichment Job
To add Universal Enrichment to your campaign:
- Navigate to Processr > Enrichment tab within your campaign.
- Click Add to add a new Processr job.
- In the Job field, select Universal Enrichment from the dropdown.
- Complete the configuration sections as shown below and click Save.
Authentication Mode
Select the appropriate authentication method from the Authentication dropdown:
- Headers – Use this if your service provider requires header-based authentication such as a Bearer Token, Basic Auth, or X-API-Key.
- Public Key Infrastructure (PKI) – Choose this option if your provider (for example, ZoomInfo) uses public key authentication.
- OAuth – Use this when your provider requires a multi-step OAuth authentication flow.
Endpoint Details
Complete the API section of the job configuration:
- API URL – Enter the full endpoint URL, including https://.
- Method – Select the HTTP method used by the endpoint (typically GET or POST).
- Verify SSL Peer – Set to Yes to ensure the server’s SSL certificate is validated.
- Send as JSON – Defines whether the request body is sent as JSON. In most cases, set this to Yes for POST requests and No for GET requests.
Headers
Add any headers required by your service provider.
Enter the header name in the Key field and the header value in the Value field.
If you selected the Headers authentication mode, include add authentication headers here.
Common examples include:
Authorization: Bearer <token>Authorization: Basic <credentials>X-API-Key: <api key>
Public Key Infrastructure (PKI)
This section appears if you selected Public Key Infrastructure (PKI) as your authentication mode.
Fill in the following fields:
- PKI Key – Enter the private key exactly as provided by your service provider. Make sure to include the full content, including lines such as
-----BEGIN PRIVATE KEY-----and-----END PRIVATE KEY-----, and everything in between. - PKI Client ID – Your client identifier, as issued by the service provider.
- PKI Username – The username associated with your account on the service provider’s platform.
OAuth
This section appears if you selected OAuth as your authentication mode.
Fill in the following fields:
- URL – The full endpoint URL used to request an access token.
- Access Token Key – The key name in the API response that contains the access token (for example, access_token).
- Access Token Expire Key – The key name in the API response that contains the token’s expiry time (for example, expires_in).
- Access Token Expire In – The default expiry time (in seconds) to apply if the API response doesn’t include one.
- Method – The HTTP method used to request the token, typically POST.
- Grant Type – The OAuth grant type required by your provider (for example, client_credentials or authorization_code).
- Client ID – The client identifier provided by your service provider.
- Client Secret – The client secret associated with your Client ID.
You can add more fields using the Add button if your provider requires additional parameters, or remove redundant ones using the Remove button.
Using the OAuth Token
The access token retrieved during the OAuth process can be referenced in other configuration sections using the ##token## placeholder.
For example, to include the token in an Authorization header:
Authorization: Bearer ##token##When the job runs, the placeholder will automatically be replaced with the active OAuth token.
Avoiding OAuth Request Quota Limits
If neither the Access Token Expire Key nor the Access Token Expire In field is configured, an OAuth request will be sent for every processed lead.
This can quickly cause the integration to hit the provider’s request quota limits, leading to authentication failures.
To prevent this, make sure that at least one of these two fields is properly configured.
This allows Universal Enrichment to reuse the active token until it expires, reducing unnecessary OAuth calls.
Request Mapping
The Request Mapping section defines which parameters are sent in the request and how their values are populated.
The left column lists the parameter names to include in the request. The right column defines the lead field name or value transform name that provides the parameter’s value.
You can add new parameters using the Add button at the bottom of the section, and remove existing ones using the Remove button.
Adding Nested Parameters
To include nested parameters, such as person.work_email, use the Add button located beneath the parent field.
For example:
For POST requests with a JSON body, this produces a request structure similar to:
{
"person": {
"work_email": "john.doe@example.com"
}
}Using the Hardcode Modifier
You can use the |hardcode modifier with a lead field name to prevent automatic replacement of field names with their values.
For example:
work_email: emailsendswork_email=john.doe@example.com
while
work_email: email|hardcodesendswork_email=email
Response Mapping
The Response Mapping section defines how fields from the API response are mapped back to your lead data.
The left column contains the lead field names to update or create. The right column specifies the response field path, using dot notation (for example, person.address.street).
Filling In Missing Fields
You can use Universal Enrichment to fill in missing lead details such as job titles or company names.
To do this, map the response fields from your data provider to existing campaign fields (for example, job_title or company_name).
When the mapped field already exists in the campaign form, Universal Enrichment will only populate it if the field was empty in the submitted lead.
This prevents overwriting any information that was already provided by the lead.
Appending Fields
You can also use Universal Enrichment to add new information that isn’t part of the campaign’s original form — such as company revenue, industry, company address, intent data, or internal metadata from your own systems.
When the mapped lead field doesn’t exist in the campaign form, Universal Enrichment will automatically add it during processing.
This allows you to extend each lead with valuable enrichment attributes while keeping the original submission intact.
Mapping Examples
Simple (flat) JSON response
{
"email": "john.doe@example.com",
"job_title": "Marketing Manager"
}Example mapping:
- email: email
- job_title: job_title
This configuration will save the email and job_title values from the response into the corresponding lead fields email and job_title.
Nested (complex) JSON response
{
"person": {
"address": {
"street": "123 Main St",
"city": "London"
},
"company": {
"name": "Convertr",
"revenue": "5000000"
}
}
}Example mapping:
- job_title: person.job_title
- company_name: person.company.name
- company_revenue: person.company.revenue
- city: person.address.city
This configuration will save person.job_title, person.company.name, person.company.revenue, and person.address.city from the response into the lead fields job_title, company_name, company_revenue, and city.
Testing the Setup
To verify that your Universal Enrichment configuration works as expected:
- Submit a test lead to your campaign.
- Go to the campaign’s Leads tab.
- Click View to open the lead details.
- Confirm that the lead has been updated with information returned by your enrichment provider.
For example, address fields and company details may have been appended or filled in automatically using Universal Enrichment:
Understand Your Enriched Data
To see exactly what Universal Enrichment added to a lead:
- Go to the Processr Log tab in the lead view.
- Look for the Universal Enrichment job entries.
- Review the log to see which fields were filled, appended, or skipped.
Job Failure
A Universal Enrichment job will be marked as failed only if the connection to the service provider was unsuccessful — for example, due to invalid credentials, an unreachable endpoint, or other network-related issues.
If the connection succeeds and the service provider returns a valid response, the job will be treated as successful, even if the response contains no data.
Empty or Missing Enrichment Data
In some cases, the service provider may return a valid response but with no enriched data.
This usually means that the provider doesn’t have relevant information for the parameters sent in the request.
Such cases do not automatically cause the job to fail.
To check for missing or incomplete enrichment results, use Quality Assurance jobs such as Required Fields or Required Fields – Multiple.
These can be configured to ensure that key fields — for example, job_title, company_name, or company_revenue — are populated.
Troubleshooting
If you don’t see any enriched data in your lead, the connection to your enrichment provider may not be configured correctly.
To troubleshoot:
- Check the Processr Log tab in the lead view for any Universal Enrichment errors.
- Check the Provider Log tab in the lead view for additional error details.
If you are unable to resolve the issue, please contact our support team.
Using Enriched Data for Lead Validation
Enriched fields can also be used to validate leads, just like any other lead fields.
Once Universal Enrichment has appended or updated data — such as email verification results, company size, or intent signals — those fields become available for use in Quality Assurance jobs within your campaign setup.
For example, you can configure rules that:
- Reject leads where an email validation result indicates an invalid address.
- Mark leads for review if company size or industry does not match your target criteria.
- Automatically qualify leads based on intent data or enrichment signals.
This allows enriched information to directly improve lead quality checks and decision-making during processing.
Delivering Enriched Leads
Once Universal Enrichment has added or updated lead data, the enriched fields can be integrated back into your marketing platforms like Marketo, Salesforce, or batch CSV — just like any other lead fields.