Skip to Content
DocumentationConcepts

Pipe Concepts

This page contains additional information about pipes.

Pipe types

Single provider pipes

Many pipes use a single provider for processing. Providers can be a third-party service like LeadMagic  or ZeroBounce . Native pipes use Pipe0 as a provider.

Waterfall pipes

Waterfall pipes use many providers in a cascading sequence. We try provider A. If the data is found, it is returned. If the data is not found we try provider B. If the data is not found again, we try provider C and so on.

A billing event occurs for the provider that returns a result. Providers that return no_result are not billed.

Waterfall enrichments can drastically increase data coverage. But keep in mind that trying many providers can slow down processing speed.

Choosing waterfall providers

Waterfall pipes have a config.providers option. The option is typically of the type Array<{ provider: <PROVIDER_NAME> }>. If no config is provided the default config is applied. If you remove a provider from the array, the provider is removed from your processing sequence.

Providers are processed according to their position in the config.providers array. The provider with the index 0 is processed first. You are encouraged to change the order.

Field mode

The field mode determines the shape of the config object a pipe takes.

Field mode: static

Most pipes have static input and output fields. When field_mode is set to static the pipe’s in- and outputs are known in advance.

You can point the input fields to different fields or rename the outputs but the pipe’s API is clearly defined in advance.

Example:

When using the pipe people:workemail:waterfall@1, we use the input fields name and company_website_url to generate the output field work_email.

Field mode: prompt

The user is required to specify the inputs and outputs of a pipe via a prompt.

Example:

The pipe run:prompt@1 uses any number of input fields to generate any number of output fields. The user may specify any input or output field by using prompt tags.

Prompt tags

To define fields in prompt mode, use the following syntax to define fields.

{ "prompt": "Based on the name of the person {{ input name type=\"string\" required=\"true\" }} assign a character from the TV show \"The Simpsons\" to that person. {{ output value description=\"Name of a character from the TV show 'The Simpsons\'\" }}", }

type: “string” | “number” | “boolean”
required: “true” | “false”
description: string

Last updated on