# Attio Smart List Builder

> Build targeted lists with natural language. Discover your schema, filter by any criteria, and populate lists automatically.

Source: https://cotera.co/solutions/sales/attio-smart-list-builder

---

- **Team:** Sales
- **Tools:** Attio
- **Difficulty:** medium
- **Setup time:** 10 min
- **Time saved:** 1 hr/list

## How it works
1. **Schema Discovery** — Auto-detect your workspace objects and fields to build accurate queries
2. **Smart Filtering** — Query records by any combination of criteria using natural language
3. **Dedup Check** — Verify records are not already on the target list before adding
4. **Bulk Add** — Add all qualified records to your target list in one operation

## Example requests
- Build a list of SaaS companies with 100+ employees in the Proposal stage
- Find all VP and C-level contacts at healthcare companies and add them to my outreach list
- Create a list of churned accounts from last quarter that had contract values over $50K

## Prompt

```markdown
## Task

Build targeted lists in Attio by discovering the workspace schema, understanding available fields, querying records that match specific criteria, and adding qualified records to a target list. Use @Attio/List Objects to discover all objects in the workspace, @Attio/Get Object to understand each object&apos;s fields and structure, @Attio/List Records and @Attio/Search Records to find records matching the user&apos;s criteria, and @Attio/Add List Entry to add qualified records to the target list.

**Example:** Build a list of enterprise companies in fintech with more than 500 employees from my Attio workspace.

## Input

The user will provide:
1. The criteria for the target list (industry, size, stage, location, etc.)
2. The name of the list to add records to (or create)
3. Optional: exclusion criteria (e.g., "exclude existing customers")
4. Optional: maximum number of records to add

**Example:** "Build a list of SaaS companies with 100-500 employees that are in the Proposal stage" or "Find all contacts who are VPs or C-level at companies in healthcare"

## Context

### Schema Discovery

**Why it matters:**
- Every Attio workspace has different objects and custom fields
- You need to understand the schema before querying effectively
- Custom fields like "ICP Tier" or "Lead Source" vary by workspace
- Object relationships determine how to cross-reference data

**Discovery process:**
1. List all objects to see what exists (People, Companies, custom objects)
2. Get each relevant object to understand its fields
3. Map field names to user criteria (e.g., "size" might be "Employee Count" or "Company Size")
4. Identify filterable fields vs. free-text fields

### Query Strategy

1. Discover the workspace schema with List Objects and Get Object
2. Map user criteria to actual field names
3. Search for records matching the primary criteria
4. Filter results by secondary criteria
5. Check for duplicates against the target list
6. Add qualified records with relevant attributes

### What Makes a Good List

- Records match ALL specified criteria, not just some
- No duplicates (check before adding)
- Include enough context on each entry for follow-up (company, role, last interaction)
- Ordered by relevance or priority
- Exclusions are properly applied

## Output

**Smart List Builder Report:**

**List Name:** [Target List Name]
**Criteria:** [Natural language description of criteria]
**Records Found:** [count]
**Records Added:** [count]
**Duplicates Skipped:** [count]

---

**Schema Discovery:**

| Object | Fields Used | Record Count |
|--------|------------|-------------|
| Companies | Industry, Size, Stage | [count] |
| People | Title, Department | [count] |

**Fields Mapped:**
- "Industry" mapped to field: [actual field name]
- "Size" mapped to field: [actual field name]
- "Stage" mapped to field: [actual field name]

---

**Records Added to List:**

| # | Company | Industry | Size | Stage | Key Contact |
|---|---------|----------|------|-------|-------------|
| 1 | [Company] | [Industry] | [Size] | [Stage] | [Name, Title] |
| 2 | [Company] | [Industry] | [Size] | [Stage] | [Name, Title] |
| 3 | [Company] | [Industry] | [Size] | [Stage] | [Name, Title] |

---

**Records Excluded:**

| Company | Reason |
|---------|--------|
| [Company] | Already on target list |
| [Company] | Existing customer (excluded by criteria) |
| [Company] | Missing required field: [field] |

---

**List Quality Check:**
- All records match criteria: [Yes/No]
- Duplicate check passed: [Yes/No]
- Exclusions applied: [Yes/No]
- Records with complete data: [X] of [Y]

**Summary:**
- [X] records added to "[List Name]"
- [Y] records skipped (duplicates or exclusions)
- [Z] records need manual review (partial criteria match)

**Next Steps:**
1. Review [X] partial matches for manual inclusion
2. Assign list to [owner] for outreach
3. Re-run in [timeframe] with updated criteria
```

## Related reading
- [CRM Lead Enrichment: The AI Approach That Actually Scales](https://cotera.co/articles/crm-lead-enrichment-ai.md)
- [Folk CRM vs AI-Powered CRM: Two Approaches to Modern Sales](https://cotera.co/articles/folk-crm-vs-ai-agents.md)

