Reference · Tools

uProc

Data processing, enrichment, and validation platform with 455+ processors across 11 categories

Action Data & Storage v1

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires uProc API credentials.

See the Credentials Guide for setup instructions.

Resources

ResourceValue
Audioaudio
Communicationcommunication
Companycompany
Financefinance
Geographicalgeographic
Imageimage
Internetinternet
Personalpersonal
Productproduct
Securitysecurity
Texttext

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:

  1. the matching field on this node, when you have filled it in,
  2. the matching key inside Additional Parameters (JSON),
  3. 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.

ParameterTypeRequiredDefaultDescription
Resource (group)optionsNocommunicationThe resource group to use. Each group contains multiple processors.
Options: audio, communication, company, finance, geographic, image, internet, personal, product, security, text
Operation (tool)optionsNoThe 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.
EmailstringNoEmail address parameter for the selected processor.
DomainstringNoDomain name parameter for the selected processor.
PhonestringNoPhone number parameter for the selected processor.
MobilestringNoMobile phone number parameter.
AddressstringNoAddress parameter for geographic processors.
TextstringNoText parameter for text/audio processors.
IPstringNoIP address parameter.
URLstringNoURL parameter for internet/company processors.
NamestringNoName parameter (person name, company name, location name).
CountrystringNoCountry name or ISO code.
ISO CodestringNoISO code parameter (country, currency).
ZipcodestringNoZipcode/postal code parameter.
CoordinatesstringNoCoordinates parameter (lat,lon format).
CompanystringNoCompany name or domain.
ProfilestringNoSocial profile URL.
First NamestringNoFirst name parameter.
Last NamestringNoLast name parameter.
Full NamestringNoFull name parameter.
DatestringNoDate parameter (multiple formats allowed).
LinkedIn li_at CookiestringNoLinkedIn session cookie (li_at) for LinkedIn processors.
LinkedIn JSESSIONID CookiestringNoLinkedIn JSESSIONID cookie for LinkedIn processors.
Additional Parameters (JSON)jsonNo{}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 OptionscollectionNo{}Additional configuration options for the processor call.
— Data WebhookstringNoURL to send tool response when processing completes (async callback).
Max ConcurrencynumberNo10Maximum 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 _uprocResult and 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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 additionalOptions object, not at the top level of the node’s parameters.
  • Cookie-based LinkedIn processors act as you. Anything under Communication that takes li_at and jsessionid runs 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 BusyBot

Last updated . Spotted something wrong? Tell us.