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

# API workflows for sales automation

> End-to-end recipes that chain Fuse prospect search, enrichment, AI smart columns, signal agents, website intent and campaigns into automated sales pipelines.

Each [guide](/guides/build-a-list-from-search) covers one part of the Fuse API. A workflow chains several of them to reach one outcome: a qualified prospect list, a campaign that keeps itself full, or a cleaner CRM. Every workflow lists the API calls in order and names the id each step hands to the next, so you can run it as a script, as a scheduled job, or as a single prompt to an AI assistant.

## Choose a workflow

### Build and qualify prospect lists

<CardGroup cols={2}>
  <Card title="Build an AI outbound campaign from a prompt" icon="wand-magic-sparkles" href="/workflows/ai-campaign-from-a-prompt">
    Describe your buyer in plain English, save an enriched list, and launch AI-written email grounded in your product.
  </Card>

  <Card title="Qualify leads with AI before you enrich them" icon="filter" href="/workflows/qualify-leads-before-enrichment">
    Score a raw list against your ideal customer profile with a smart column, then enrich only the leads that pass.
  </Card>

  <Card title="Turn a Deep Research run into a campaign" icon="magnifying-glass-chart" href="/workflows/deep-research-to-campaign">
    Research a niche market with one prompt, keep the report as campaign knowledge, and reach the people it found.
  </Card>
</CardGroup>

### Run outreach on buying signals

<CardGroup cols={2}>
  <Card title="Automate job change outreach" icon="briefcase" href="/workflows/job-change-outreach">
    A signal agent finds people starting a new role, and a dynamic campaign contacts each one automatically.
  </Card>

  <Card title="Reach newly funded companies" icon="sack-dollar" href="/workflows/funding-round-outreach">
    Turn funding announcements into the leaders you sell to at each company, enrolled as they arrive.
  </Card>

  <Card title="Turn website visitors into pipeline" icon="globe" href="/workflows/website-visitor-outreach">
    Find the decision-makers at the companies visiting your site and reach them the same day.
  </Card>
</CardGroup>

### Personalize, follow up and keep data clean

<CardGroup cols={2}>
  <Card title="Personalize every email with AI research" icon="pen-nib" href="/workflows/personalize-emails-with-ai-research">
    A smart column researches every prospect and writes an opening line you can check before it is sent.
  </Card>

  <Card title="Follow up on replies and clicks" icon="reply" href="/workflows/follow-up-on-engagement">
    Hand repliers to your CRM and give people who clicked but never replied a second touch.
  </Card>

  <Card title="Clean and enrich your CRM data" icon="arrows-rotate" href="/workflows/clean-and-enrich-crm-data">
    Import a CRM export, merge duplicates, verify and enrich contacts, then sync them back.
  </Card>
</CardGroup>

## How the Fuse tools connect

Five mechanics make the API composable. Every workflow relies on at least two of them, and knowing them makes it easy to design your own.

### Lists are the hand-off

Almost every tool either fills a list or works on one. Pass the list id along and the next tool picks up where the last one stopped.

| Fills a list | Where the list id comes from |
| - | - |
| [Saving a prospect search](/guides/build-a-list-from-search) | `listIds[0]` on the `202` from `POST /business/prospects/search/save-to-list` |
| [Committing an import](/workflows/clean-and-enrich-crm-data) | `import.listId` on the `202` from `POST /business/imports/{importId}/commit` |
| [A signal agent](/guides/create-an-agent) | `listId` on the agent's row in `GET /business/agents` |
| [A Deep Research run](/workflows/deep-research-to-campaign) | `resultListId` on `GET /business/research/runs/{runId}` |

Enrichment, [smart columns](/guides/smart-columns), [exports](/guides/export-a-list), CRM pushes and [campaigns](/guides/campaigns) all take a list id.

### One row filter everywhere

`GET /business/lists/{listId}/rows`, `POST /business/lists/{listId}/enrich`, `POST /business/lists/save-to-list` and smart columns accept the same `filters` object. It can match the values in your custom and smart columns:

```json theme={null}
{ "customColumns": { "68a1f3009c41d20014b3e9a1": { "dataType": "string", "include": ["yes"] } } }
```

String values match case-insensitively anywhere in the cell, so `yes` also matches `Yes.`. That means an answer written by an AI column can decide which rows you enrich, copy or contact next.

### Companies lead to people

A company domain is the bridge from accounts to the people who work there. Pass domains, up to 1,000 at a time, as the `job_company_website` filter of a [people search](/guides/build-a-list-from-search) to find the right contacts at those companies. `GET /business/lists/{listId}/filter-values?field=domain` returns the domains in a company list, up to 1,000 rows per call, and the website visitor feed returns the domain of each visiting company. [Funding round outreach](/workflows/funding-round-outreach) shows the step end to end.

### Columns feed the copy

A campaign step can insert any custom or smart column with a token such as `{Column: Opener}`, so whatever you write into a list can end up in the email. The value is read when each contact's step is scheduled, so fill the column for everyone first: a blank cell leaves a gap, and a contact whose smart column is still running is stopped rather than held. [Personalize every email with AI research](/workflows/personalize-emails-with-ai-research) shows the safe order.

### Campaigns keep enrolling

A campaign created with `isDynamic: true` checks its source lists about every 30 minutes and enrolls contacts that are not in it yet, up to 200 at a time, however they got onto the list. Point one at a list that keeps growing, such as an agent's results list or a list you save into every day, and outreach continues without another call. A check enrolls nobody while you have no usable sending account, or while one of the campaign's exclude lists cannot be read; the next check tries again.

## What every workflow has in common

* **Async steps answer `202`.** Each workflow names the call to poll for every step. The full map is in [Long-running work](/concepts/long-running-work).
* **Most credits are spent by the background work,** not by the call that starts it. Check `GET /business/credits` before a large step, and see [Credits & billing](/concepts/credits) for what each operation costs.
* **Each surface has its own [rate limit](/concepts/rate-limits).** Campaigns and knowledge hubs share 30 requests a minute, so poll them gently.
* **Each workflow lists the [scopes](/concepts/scopes) it needs.** Keys created in the API Cockpit carry every scope, so treat each key as full access and keep one per integration, so you can revoke it on its own.

## Run a workflow from an AI assistant

The [Fuse MCP server](/mcp/connect) does the same work from Claude, Cursor or any other MCP client. Each workflow ends with a prompt you can paste into your assistant. The assistant picks and chains the tools itself, and creating a campaign never launches it: the campaign stays a draft until you ask to launch it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.