Reference · Tools
uProc
Data processing, enrichment, and validation platform with 455+ processors across 11 categories
The uProc node runs any of more than 455 processors covering email, phone, company, geographic, text and product data — validating, enriching and transforming records. A typical build is cleaning an imported list by validating emails and normalising phone numbers before anything downstream uses them.
- Node type
- Action
- Parameters
- 26
- Outputs
- Output, Error
- Credentials
- uProc API
uProc
Data processing, enrichment, and validation via 455+ processors
Overview
uProc is a data processing platform that exposes hundreds of individual processors across 11 resource groups (Audio, Communication, Company, Finance, Geographical, Image, Internet, Personal, Product, Security, Text). Each processor performs one specific operation — validating an email address, verifying a phone number, enriching a company, looking up coordinates, converting a currency, checking a product code, transforming text, and so on. You pick a resource group, pick a processor inside it, fill in the inputs that processor needs, and the node calls uProc once per input item.
Category: Data & Storage
Tool Name: uproc
Version: 1
Appearance: Icon: lucide-Cpu | Color: #662584
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires uProc API credentials.
See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Audio | audio |
| Communication | communication |
| Company | company |
| Finance | finance |
| Geographical | geographic |
| Image | image |
| Internet | internet |
| Personal | personal |
| Product | product |
| Security | security |
| Text | text |
Each resource is a family of processors: Communication covers email, mobile, phone and LinkedIn; Finance covers cards, IBAN, BIC, SWIFT, currency and VAT; Geographical covers addresses, coordinates, routes and postal data; Company covers domains, tax IDs and decision makers; Text covers string, number and list operations. Choosing a resource is what narrows the Operation dropdown to a workable size.
Parameters
Nothing on this node is hidden per processor — every input field below is always visible, and you fill in only the ones your chosen processor actually needs. When the node runs, it looks up the processor’s declared inputs and, for each one, takes the first value it finds:
- the matching field on this node, when you have filled it in,
- the matching key inside Additional Parameters (JSON),
- a field of the same name on the incoming item.
Anything else you filled in is ignored. That fallback chain matters because the fields below cover the most common inputs, not all of them — plenty of processors ask for something with no field of its own (iban, isbn, regex, list, years, separator, location, and so on). Supply those through Additional Parameters (JSON), or make sure the incoming item already carries a field of that name. Expressions work in every case, so {{ $json.email }} in a field is resolved per item.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Resource (group) | options | No | communication | The resource group to use. Each group contains multiple processors. |
Options: audio, communication, company, finance, geographic, image, internet, personal, product, security, text | ||||
Operation (tool) | options | No | — | The processor to execute. The dropdown is built from the processors belonging to the Resource you selected, so changing Resource replaces the list; the value you save is the processor’s key, e.g. checkEmailExists or getCompanyByDomain. |
string | No | — | Email address parameter for the selected processor. | |
| Domain | string | No | — | Domain name parameter for the selected processor. |
| Phone | string | No | — | Phone number parameter for the selected processor. |
| Mobile | string | No | — | Mobile phone number parameter. |
| Address | string | No | — | Address parameter for geographic processors. |
| Text | string | No | — | Text parameter for text/audio processors. |
| IP | string | No | — | IP address parameter. |
| URL | string | No | — | URL parameter for internet/company processors. |
| Name | string | No | — | Name parameter (person name, company name, location name). |
| Country | string | No | — | Country name or ISO code. |
| ISO Code | string | No | — | ISO code parameter (country, currency). |
| Zipcode | string | No | — | Zipcode/postal code parameter. |
| Coordinates | string | No | — | Coordinates parameter (lat,lon format). |
| Company | string | No | — | Company name or domain. |
| Profile | string | No | — | Social profile URL. |
| First Name | string | No | — | First name parameter. |
| Last Name | string | No | — | Last name parameter. |
| Full Name | string | No | — | Full name parameter. |
| Date | string | No | — | Date parameter (multiple formats allowed). |
| LinkedIn li_at Cookie | string | No | — | LinkedIn session cookie (li_at) for LinkedIn processors. |
| LinkedIn JSESSIONID Cookie | string | No | — | LinkedIn JSESSIONID cookie for LinkedIn processors. |
| Additional Parameters (JSON) | json | No | {} | Additional processor-specific parameters as JSON. Any parameters not covered by the fields above can be passed here. Keys should match the processor parameter names. |
| Additional Options | collection | No | {} | Additional configuration options for the processor call. |
| — Data Webhook | string | No | — | URL to send tool response when processing completes (async callback). |
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
One output item per input item, always — this node never fans out and never drops an item.
The processor’s response is merged onto the incoming item’s JSON at the top level, so the item keeps its own fields and gains the result’s. There is no wrapper property to reach through: if the processor returns { "exists": true }, that is {{ $json.exists }} downstream. Binary data on the input item is forwarded unchanged.
Two shapes get special handling:
- A response that is a list is attached whole to
_uprocResult. When that list holds exactly one object, its fields are also merged onto the item, so single-hit lookups behave like single responses. - A response that is not an object at all — a bare string or number — is attached to
_uprocResultand nothing is merged.
Because the result is merged rather than namespaced, a processor that returns a field your item already has will overwrite it. Rename upstream if that matters.
Setting Data Webhook does not change any of this: uProc also posts the response to that URL when it finishes, but the node’s own output item is the same either way.
Usage Examples
- Validate an email address exists
- Get company data by domain
- Check if a phone number is valid
- Look up geographic coordinates by address
- Convert text to uppercase
- Check if an IBAN is valid
- Get gender by email address
Example Configuration
Validate one email address and have uProc call a webhook when it is done:
{
"type": "uproc",
"parameters": {
"group": "communication",
"tool": "checkEmailExists",
"email": "user@example.com",
"maxConcurrency": 5,
"additionalOptions": {
"dataWebhook": "https://api.myapp.com/callback"
}
}
}
Validate a whole list of addresses, one per item, taking the address off each item:
{
"type": "uproc",
"parameters": {
"group": "communication",
"tool": "checkEmailExists",
"email": "{{ $json.email }}",
"maxConcurrency": 10
}
}
Enrich a company from its domain:
{
"type": "uproc",
"parameters": {
"group": "company",
"tool": "getCompanyByDomain",
"domain": "microsoft.com"
}
}
Find a company by name within a country:
{
"type": "uproc",
"parameters": {
"group": "company",
"tool": "getCompanyByName",
"name": "Acme Corporation",
"country": "US"
}
}
Geocode an IP address:
{
"type": "uproc",
"parameters": {
"group": "geographic",
"tool": "getCoordinateByIp",
"ip": "8.8.8.8"
}
}
Geocode a written address:
{
"type": "uproc",
"parameters": {
"group": "geographic",
"tool": "getCoordinateBySearch",
"address": "1600 Amphitheatre Parkway, Mountain View, CA"
}
}
Check that a string contains only letters:
{
"type": "uproc",
"parameters": {
"group": "text",
"tool": "checkStringAlpha",
"text": "HelloWorld"
}
}
Read a LinkedIn profile with your own session cookies:
{
"type": "uproc",
"parameters": {
"group": "communication",
"tool": "getLinkedinProfile",
"li_at": "{{ $json.liAt }}",
"jsessionid": "{{ $json.jsessionId }}",
"profile": "https://www.linkedin.com/in/example",
"maxConcurrency": 3
}
}
Feed a processor an input that has no field of its own — here location, passed through Additional Parameters (JSON):
{
"type": "uproc",
"parameters": {
"group": "personal",
"tool": "getPersonByFirstnameLastnameCompanyLocation",
"firstname": "John",
"lastname": "Doe",
"company": "ACME Corp",
"additionalParams": "{\"location\": \"Barcelona, Spain\"}"
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Use uProc to validate, enrich, and transform data using 455+ processors covering email, phone, company, geographic, text, and product data.
Notes
- Pick the Resource first. The Operation dropdown only lists the processors of the selected resource, and the two are saved independently — if you change Resource after choosing a processor, re-open Operation and pick again rather than assuming the old value still applies.
- An unrecognised Operation fails the item with
Unknown uProc processor, not silently. That is the usual symptom of a processor key typed by hand or built from an expression that resolved to something unexpected. - Fill in only what the processor asks for. Extra fields are not an error — they are simply not sent — but they make the node harder to read later. One node, one processor, the two or three fields it needs.
- Additional Parameters (JSON) is the escape hatch, and its keys are literal. They must match the processor’s own input names exactly (
iban,isbn,years,location,separator…). A misspelled key is not rejected; the processor just receives an empty value for that input. - Keep Additional Options nested. Data Webhook belongs inside the
additionalOptionsobject, not at the top level of the node’s parameters. - Cookie-based LinkedIn processors act as you. Anything under Communication that takes
li_atandjsessionidruns against LinkedIn with your own session, so treat those cookies as credentials: pull them from an upstream secure source rather than typing them into the node, and keep concurrency low. - Concurrency is per node run. Max Concurrency caps how many items call uProc at once; on paid-per-call processors that is also how fast you spend, so start low on a large batch.
Frequently asked questions
Why did my processor selection stop working?
Pick the Resource first. The Operation dropdown only lists the processors of the selected resource, and the two are saved independently — if you change Resource after choosing a processor, re-open Operation and pick again.
What kinds of processor are available?
Email, phone, company, geographic, text and product data processors, spanning validation, enrichment and transformation.
Is it suitable for bulk cleaning?
Yes, that is the common use — running an imported list through validation before it reaches a CRM or a mailing platform.
Which credential does it need?
A uProc API credential.
Build with the uProc node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need uProc API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.