> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sixtyfour.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Building Workflows

> How to import, find, enrich, clean, and send data using the Sixtyfour Workflow Editor.

Workflows in Sixtyfour are linear pipelines that process data through a sequence of blocks. Each block performs a specific function — importing data, finding and enriching it, cleaning and organizing it, or sending results. Every workflow follows the same pattern:

```mermaid theme={null}
flowchart LR
  Import --> Find --> Enrich --> Clean --> Send
```

<Warning>
  Only Enterprise plan customers can use the Workflow Editor and Templates to create workflows in the Sixtyfour Platform. You can still create workflows programmatically using the [Workflows API](/api-reference/workflows/workflows-overview).
</Warning>

* Open the [Workflow Editor](https://app.sixtyfour.ai/workflows/new) to start building.
* For API-driven workflow management, see the [Workflows API reference](/api-reference/workflows/workflows-overview).
* For a pre-built starting point, browse the [Workflow Templates](/guides/workflow-templates) gallery.

## Source Blocks

<Tip>For a complete list of source blocks, see the [Workflow Blocks Reference](/api-reference/workflows/workflow-blocks).</Tip>

Every workflow starts with a source block. Pick one based on where your data lives.

| Block              | Description                                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
| Search             | Find people or companies from Sixtyfour's dataset using a natural language query. The most common starting point. |
| Read Notebook      | Pull data from a previously saved Sixtyfour notebook.                                                             |
| Google Maps        | Search for local businesses and places.                                                                           |
| GitHub Find People | Discover developers from GitHub repositories (contributors, stargazers, watchers).                                |
| GitHub Search      | Search GitHub for repositories, users, or code.                                                                   |
| Kaggle             | Pull competitors from Kaggle competition leaderboards.                                                            |
| Y Combinator       | Fetch YC company data by batch, industry, or tags.                                                                |
| HubSpot Import     | Import contacts or companies directly from HubSpot CRM.                                                           |
| X                  | Search X/Twitter for profiles (e.g., "AI researchers", "crypto founders in NYC").                                 |
| TikTok             | Get the following list from TikTok profile URLs or handles.                                                       |
| Incoming Webhooks  | Receive data from external systems via API call.                                                                  |

<Note>Workflows starting with an Incoming Webhooks block can be [triggered via API](/api-reference/workflows/workflows-execution). Other source blocks run from the Workflow Editor.</Note>

## Enrichment Blocks

Enrichment blocks research and append new information to each row. The block you choose depends on whether you're working with **Lead** (people) or **Company** (organization) data.

### Core Enrichment

| Block            | Input Type | Description                                                                                                                                      |
| ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Enrich People    | Lead       | AI web research on people. Define custom return fields (job title, LinkedIn URL, skills, etc.) and the system researches each person.            |
| Enrich Companies | Company    | AI web research on companies. Define custom return fields (revenue, employee count, industry, etc.). Optionally discover people at each company. |

### Contact Finding

| Block         | Input Type | Description                                                                                                                 |
| ------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| Email address | Lead       | Find professional or personal email addresses. Returns a verification status (`OK`, `UNKNOWN`, `RISKY`, `NOT_FOUND`).       |
| Phone         | Lead       | Find phone numbers.                                                                                                         |
| Verify Email  | Lead       | Check if existing email addresses are valid and deliverable.                                                                |
| Verify Phone  | Lead       | Check if existing phone numbers are valid and return carrier, line type, activity score, prepaid flag, and country signals. |

### Reverse Lookup

| Block         | Input Type | Description                                            |
| ------------- | ---------- | ------------------------------------------------------ |
| Reverse Email | Lead       | Look up person and company info from an email address. |
| Reverse Phone | Lead       | Look up person and company info from a phone number.   |

### Specialized

| Block              | Input Type | Description                                                                                                                 |
| ------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| Web Research Agent | Any        | General-purpose AI agent that browses the internet to answer custom questions per row. Best for highly specialized queries. |
| Scrape Website     | Any        | Scrape web content from URLs in a column. Output as markdown or HTML; supports geo, JS rendering, and proxies.              |
| Find Subdomains    | Company    | Find subdomains for a domain using the DNSDB API; supports time filters.                                                    |
| Backlinks          | Company    | Get referring domains for a target domain or URL via DataForSEO Backlinks; supports pagination.                             |

For the underlying APIs, see [People Intelligence](/api-reference/endpoint/people-intelligence), [Company Intelligence](/api-reference/endpoint/company-intelligence), [Find Email](/api-reference/endpoint/find-email), and [Find Phone](/api-reference/endpoint/find-phone).

## Transform Blocks

Transform blocks filter, deduplicate, reshape, and prepare data between enrichment and output.

| Block                     | Description                                                                                                                                           |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Filter                    | Keep or remove rows based on column conditions (e.g., only verified emails, companies with 100+ employees).                                           |
| Deduplicate               | Remove duplicate rows based on one or more columns.                                                                                                   |
| Deduplicate with Notebook | Remove rows that already exist in a specified notebook. Prevents duplicates across recurring runs.                                                    |
| Generate Text             | Generate custom text per row using a prompt template with column references. Use `{column_name}` for substitution. Useful for personalized messaging. |
| LLM Output                | Generate structured or unstructured text per row using configurable LLM models. Use when you need typed output via a schema.                          |
| Remove Columns            | Remove selected columns from the output, keeping all rows intact.                                                                                     |
| Group By                  | Group rows by column values with aggregation functions (sum, count, list, etc.).                                                                      |
| Extract Leads             | Extract people discovered during Company Enrichment into individual lead rows. Required before using any lead-only block on company-enriched data.    |
| Leads to Company          | Convert lead rows into company rows with nested lead arrays.                                                                                          |

### Data Type Conversion

Sixtyfour workflows operate on two data types: **Lead** (people) and **Company** (organizations). Some blocks require a specific type.

<Warning>If you run Enrich Companies with people discovery enabled, the output is still Company data. You must use the **Extract Leads** block to convert it to Lead data before using lead-only blocks like Find Email or Find Phone.</Warning>

## Output Blocks

Output blocks deliver your results. They are typically the final step in a workflow.

| Block             | Description                                                                                                                 |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Notebook          | Save results to a Sixtyfour notebook. Create a new notebook or append to an existing one.                                   |
| Slack             | Send messages to a Slack channel. Use `{column}` for substitution and `{@column}` to tag users by email.                    |
| Outgoing Webhooks | POST workflow results to an external URL when the run completes. See [Outgoing Webhooks](/api-reference/webhooks/outgoing). |

## Common Workflow Patterns

### Find people and get their emails

```mermaid theme={null}
flowchart LR
  Search --> Find_Email[Email address] --> Append_to_Notebook[Notebook]
```

### Research companies, find decision-makers, get contact info

```mermaid theme={null}
flowchart LR
  Search[Search\nCompanies] --> Enrich_Companies[Enrich Companies] --> Extract_Leads[Extract Leads] --> Find_Email[Email address] --> Append_to_Notebook[Notebook]
```

### Enrich an existing list and save clean results

```mermaid theme={null}
flowchart LR
  Read_Notebook[Read Notebook] --> Enrich_People[Enrich People] --> Filter --> Deduplicate[Deduplicate] --> Append_to_Notebook[Notebook]
```

### Import from CRM, enrich, and notify your team

```mermaid theme={null}
flowchart LR
  HubSpot_Import[HubSpot Import] --> Enrich_People[Enrich People] --> Find_Email[Email address] --> Filter --> Slack
```

## Tips

* **Filter early.** Filtering before enrichment reduces rows processed, saving time and credits.
* **Deduplicate across runs.** Use Deduplicate with Notebook on recurring workflows to avoid saving the same results twice.
* **Request only what you need.** Define only the return fields you need in enrichment blocks to keep results focused and costs efficient.
* **Bridge company to lead data.** Use Extract Leads any time you need to go from company data to people data — it is the only way to cross that boundary.
* To skip the blank canvas, start from a [Workflow Template](/guides/workflow-templates).
* To build programmatic workflows, see [Programmatic Workflows](/guides/programmatic-workflows).
