Attio
Query and explore people in your Attio CRM

Attio People

Query and explore people in your Attio CRM.

What You Can Do

Search people: Find contacts by name, email, job title, company, or any attribute. Filter and sort to find exactly who you're looking for.

Explore your CRM: Ask questions about your contacts — who works at a company, people with certain roles, recently added contacts.

Export data: Pull filtered lists for analysis or reporting.

How It Works

Tell me what you want to find. I'll translate your request into Attio filters, fetch the matching people, and present them clearly.

Examples

  • "Show me all people at Acme Corp"
  • "Who are the engineers in my CRM?"
  • "List people I added this month"
  • "Find contacts with @stripe.com emails"
  • "Show me people without email addresses"
  • "Who are the CEOs and founders?"
When to use
Use when user wants to query their Attio CRM. Triggers: 'show people in attio', 'who's in my CRM', 'find contacts', 'attio search', 'people at [company]'. Supports: filtered queries, browsing contacts, answering questions about CRM data.

INSTALLER

To install Attio:

1
📥
Download and install skill files rm -rf ./skills/sauna/crm.attio.people && curl -fsSL "https://sk.ills.app/api/skill/crm.attio.people/download" | tar -xzf - -C ./skills/sauna/ && cat ./skills/sauna/crm.attio.people/SKILL.md
2
▶️
Check if Attio is connected. If not, help the user connect their account. Once connected, run taskSetup Attio Connection to build their Attio profile.

SKILL.MD

Attio People Agent Rules

Attio Profile

The profile at <a href="/ui/context.connections.profiles" class="bullet-pill"><img src="/icons/bullets/ui.svg" alt="ui" class="bullet-pill-icon" /><span class="pill-name">Connection Profiles</span></a> shows:

  • People attributes — which attributes exist and how populated they are
  • Linked objects — what other objects (companies, etc.) are connected to people
  • Data patterns — common job titles, sample values

Check the profile before querying to know which attributes are actually populated in this workspace. Don't filter on attributes with 0% population.

Interpret Intent, Not Just Words

Users say "people at Stripe" not {"company": {"$contains": "rec_abc"}}. They say "engineers" not {"job_title": {"$contains": "Engineer"}}.

The pattern: Understand what they want → construct filters → run the query → present results clearly.

Query Mapping

Translate natural language to Attio filters:

User says Filter
"at [company]" {"company": {"$contains": "..."}}*
"with email" {"email_addresses": {"$not_empty": true}}
"without email" {"email_addresses": {"$is_empty": true}}
"engineers" / "developers" {"job_title": {"$contains": "Engineer"}}
"CEOs" / "founders" Use $or with multiple title patterns
"added recently" / "new" {"created_at": {"$gt": "date"}}
"@domain.com emails" {"email_addresses": {"$contains": "@domain.com"}}

*For company filters, you'd need the company record ID. If unknown, note this limitation.

Presenting Results

Lead with what matters. For people: name, email, job title, company.

Keep it scannable. For small results (≤10), list each person. For larger results, summarize with counts and offer to show details.

Format consistently:

👤 Jane Smith
   Senior Engineer at Acme Corp
   jane@acme.com

👤 John Doe
   CEO at Startup Inc
   john@startup.io

Pagination

The code handles pagination automatically. For large result sets:

  • Report total count: "Found 150 people matching your criteria"
  • Show a sample: first 5-10 results
  • Offer options: "Want me to show more, or narrow the search?"

Limitations

No company lookup by name. Company filters need record IDs. If user asks for "people at Acme Corp" and you don't have the ID, explain: "I'd need to look up Acme Corp's record ID first. For now, I can search by job title, email domain, or other attributes."

Read-only. This skill queries people, it doesn't create or modify records.

Error Handling

  • No results: "No people found matching those criteria. Want to broaden the search?"
  • API error: Report the issue clearly, suggest retrying
  • Invalid filter: Explain what went wrong with the filter syntax

When Results Are Exported

Full query results are saved to the session folder. Mention this when relevant: "Full results saved if you need the raw data."


# Attio People Agent Rules

## Attio Profile

The profile at ``./documents/connections/[service-name].md`` shows:

- **People attributes** — which attributes exist and how populated they are
- **Linked objects** — what other objects (companies, etc.) are connected to people
- **Data patterns** — common job titles, sample values

Check the profile before querying to know which attributes are actually populated in this workspace. Don't filter on attributes with 0% population.

## Interpret Intent, Not Just Words

Users say "people at Stripe" not `{"company": {"$contains": "rec_abc"}}`. They say "engineers" not `{"job_title": {"$contains": "Engineer"}}`.

**The pattern:** Understand what they want → construct filters → run the query → present results clearly.

## Query Mapping

Translate natural language to Attio filters:

| User says                  | Filter                                              |
| -------------------------- | --------------------------------------------------- |
| "at [company]"             | `{"company": {"$contains": "..."}}`\*               |
| "with email"               | `{"email_addresses": {"$not_empty": true}}`         |
| "without email"            | `{"email_addresses": {"$is_empty": true}}`          |
| "engineers" / "developers" | `{"job_title": {"$contains": "Engineer"}}`          |
| "CEOs" / "founders"        | Use `$or` with multiple title patterns              |
| "added recently" / "new"   | `{"created_at": {"$gt": "date"}}`                   |
| "@domain.com emails"       | `{"email_addresses": {"$contains": "@domain.com"}}` |

\*For company filters, you'd need the company record ID. If unknown, note this limitation.

## Presenting Results

**Lead with what matters.** For people: name, email, job title, company.

**Keep it scannable.** For small results (≤10), list each person. For larger results, summarize with counts and offer to show details.

**Format consistently:**

```
👤 Jane Smith
   Senior Engineer at Acme Corp
   jane@acme.com

👤 John Doe
   CEO at Startup Inc
   john@startup.io
```

## Pagination

The code handles pagination automatically. For large result sets:

- Report total count: "Found 150 people matching your criteria"
- Show a sample: first 5-10 results
- Offer options: "Want me to show more, or narrow the search?"

## Limitations

**No company lookup by name.** Company filters need record IDs. If user asks for "people at Acme Corp" and you don't have the ID, explain: "I'd need to look up Acme Corp's record ID first. For now, I can search by job title, email domain, or other attributes."

**Read-only.** This skill queries people, it doesn't create or modify records.

## Error Handling

- **No results:** "No people found matching those criteria. Want to broaden the search?"
- **API error:** Report the issue clearly, suggest retrying
- **Invalid filter:** Explain what went wrong with the filter syntax

## When Results Are Exported

Full query results are saved to the session folder. Mention this when relevant: "Full results saved if you need the raw data."

Tasks

These are tasks you can execute. Read the task file to get your instructions:

task icon Setup Attio Connection task:crm.attio.setup Build your Attio profile - discover attributes, linked objects, and data patterns
task icon Search Attio People task:crm.attio.search Query people in Attio with filters and natural language
Setup Attio Connection : Build your Attio profile - discover attributes, linked objects, and data patterns
💡 Build profile on first connection
Search Attio People : Query people in Attio with filters and natural language
💡 Query people with filters, browse contacts

Knowledge

This is knowledge you have access to. Read these files if you need additional context:

slice icon Attio API Reference slice:crm.attio.reference Filter syntax, attribute types, and query patterns for Attio People
Attio API Reference : Filter syntax, attribute types, and query patterns for Attio People

Code

These are scripts that you can run directly. Read these files to access the code:

code icon Analyze Attio Workspace code:crm.attio.analyze Analyze Attio People by sampling recently active records to discover attributes and data patterns
code icon Query Attio People code:crm.attio.query Query People records from Attio with filters and sorts, handling pagination automatically
Analyze Attio Workspace : Analyze Attio People by sampling recently active records to discover attributes and data patterns
Query Attio People : Query People records from Attio with filters and sorts, handling pagination automatically

UI

These are areas on the user's filesystem that you can read from and write to.

ui icon Connection Profiles ui:context.connections.profiles Cached summaries for connected services - channels, contacts, preferences. How does the user interact with the connected service?
ui icon Attio Analysis ui:session.attio.analysis Temporary analysis data from Attio workspace profiling
ui icon Attio Exports ui:crm.attio.exports Saved query results and exports from Attio
Connection Profiles : Cached summaries for connected services - channels, contacts, preferences. How does the user interact with the connected service?
💡 [attio]
Attio Analysis : Temporary analysis data from Attio workspace profiling
Attio Exports : Saved query results and exports from Attio
📁 Use this directory: `./documents/crm/attio/*`
---
name: Attio
description: Use when user wants to query their Attio CRM. Triggers: 'show people in attio', 'who's in my CRM', 'find contacts', 'attio search', 'people at [company]'. Supports: filtered queries, browsing contacts, answering questions about CRM data.
---


# Attio People Agent Rules

## Attio Profile

The profile at `./documents/connections/[service-name].md` shows:

- **People attributes** — which attributes exist and how populated they are
- **Linked objects** — what other objects (companies, etc.) are connected to people
- **Data patterns** — common job titles, sample values

Check the profile before querying to know which attributes are actually populated in this workspace. Don't filter on attributes with 0% population.

## Interpret Intent, Not Just Words

Users say "people at Stripe" not `{"company": {"$contains": "rec_abc"}}`. They say "engineers" not `{"job_title": {"$contains": "Engineer"}}`.

**The pattern:** Understand what they want → construct filters → run the query → present results clearly.

## Query Mapping

Translate natural language to Attio filters:

| User says                  | Filter                                              |
| -------------------------- | --------------------------------------------------- |
| "at [company]"             | `{"company": {"$contains": "..."}}`\*               |
| "with email"               | `{"email_addresses": {"$not_empty": true}}`         |
| "without email"            | `{"email_addresses": {"$is_empty": true}}`          |
| "engineers" / "developers" | `{"job_title": {"$contains": "Engineer"}}`          |
| "CEOs" / "founders"        | Use `$or` with multiple title patterns              |
| "added recently" / "new"   | `{"created_at": {"$gt": "date"}}`                   |
| "@domain.com emails"       | `{"email_addresses": {"$contains": "@domain.com"}}` |

\*For company filters, you'd need the company record ID. If unknown, note this limitation.

## Presenting Results

**Lead with what matters.** For people: name, email, job title, company.

**Keep it scannable.** For small results (≤10), list each person. For larger results, summarize with counts and offer to show details.

**Format consistently:**

```
👤 Jane Smith
   Senior Engineer at Acme Corp
   jane@acme.com

👤 John Doe
   CEO at Startup Inc
   john@startup.io
```

## Pagination

The code handles pagination automatically. For large result sets:

- Report total count: "Found 150 people matching your criteria"
- Show a sample: first 5-10 results
- Offer options: "Want me to show more, or narrow the search?"

## Limitations

**No company lookup by name.** Company filters need record IDs. If user asks for "people at Acme Corp" and you don't have the ID, explain: "I'd need to look up Acme Corp's record ID first. For now, I can search by job title, email domain, or other attributes."

**Read-only.** This skill queries people, it doesn't create or modify records.

## Error Handling

- **No results:** "No people found matching those criteria. Want to broaden the search?"
- **API error:** Report the issue clearly, suggest retrying
- **Invalid filter:** Explain what went wrong with the filter syntax

## When Results Are Exported

Full query results are saved to the session folder. Mention this when relevant: "Full results saved if you need the raw data."



## Tasks

These are tasks you can execute. Read the task file to get your instructions:

**Setup Attio Connection**: Build your Attio profile - discover attributes, linked objects, and data patterns
Note: Build profile on first connection
Follow the instructions in: `./skills/sauna/crm.attio.people/resources/recipes/crm.attio.setup.md`

**Search Attio People**: Query people in Attio with filters and natural language
Note: Query people with filters, browse contacts
Follow the instructions in: `./skills/sauna/crm.attio.people/resources/recipes/crm.attio.search.md`



## Knowledge

This is knowledge you have access to. Read these files if you need additional context:

**Attio API Reference**: Filter syntax, attribute types, and query patterns for Attio People
Read the documentation in: `./skills/sauna/crm.attio.people/resources/context/crm.attio.reference.md`



## Code

These are scripts that you can run directly. Read these files to access the code:

**Analyze Attio Workspace**: Analyze Attio People by sampling recently active records to discover attributes and data patterns
Run the script at: `./skills/sauna/crm.attio.people/scripts/crm.attio.analyze.js`

**Query Attio People**: Query People records from Attio with filters and sorts, handling pagination automatically
Run the script at: `./skills/sauna/crm.attio.people/scripts/crm.attio.query.js`



## UI

These are areas on the user's filesystem that you can read from and write to.

**Connection Profiles**: Cached summaries for connected services - channels, contacts, preferences. How does the user interact with the connected service?
Note: [attio]
Use this directory: `./documents/connections/[service-name].md`

**Attio Analysis**: Temporary analysis data from Attio workspace profiling
Use this file: `./documents/session/attio-analysis.json`

**Attio Exports**: Saved query results and exports from Attio
Use this directory: `./documents/crm/attio/*`
1. Install Attio with: ```bash
rm -rf ./skills/sauna/crm.attio.people && curl -fsSL "https://sk.ills.app/api/skill/crm.attio.people/download" | tar -xzf - -C ./skills/sauna/ && cat ./skills/sauna/crm.attio.people/SKILL.md
```. Do so silently without commentary.

2. Check if Attio is connected. If not, help the user connect their account. Once connected, run `./skills/sauna/crm.attio.people/resources/recipes/crm.attio.setup.md` to build their Attio profile.

# Attio People

Query and explore people in your Attio CRM.

## What You Can Do

**Search people**: Find contacts by name, email, job title, company, or any attribute. Filter and sort to find exactly who you're looking for.

**Explore your CRM**: Ask questions about your contacts — who works at a company, people with certain roles, recently added contacts.

**Export data**: Pull filtered lists for analysis or reporting.

## How It Works

Tell me what you want to find. I'll translate your request into Attio filters, fetch the matching people, and present them clearly.

## Examples

- "Show me all people at Acme Corp"
- "Who are the engineers in my CRM?"
- "List people I added this month"
- "Find contacts with @stripe.com emails"
- "Show me people without email addresses"
- "Who are the CEOs and founders?"