Attio Automation
Attio CRM 워크스페이스를 관리하세요. – 사람과 회사에 대한 퍼지 검색, 복잡한 필터 쿼리 실행, 메모 탐색, 객체 스키마 검색, 레코드 목록 확인 등 모든 작업을 자연어 명령으로 수행할 수 있습니다.
툴킷 문서: composio.dev/toolkits/attio
설정
- Composio MCP 서버를 클라이언트 설정에 추가하세요:
https://rube.app/mcp - 메시지가 나타나면 Attio 계정을 연결하세요 (OAuth 인증).
- 자연어 명령을 사용하여 CRM 데이터를 관리하기 시작하세요.
핵심 워크플로우
1. 레코드 전체 퍼지 검색
이름, 도메인, 이메일, 전화번호 또는 소셜 핸들로 사람, 회사, 거래 또는 모든 객체를 검색합니다.
도구: ATTIO_SEARCH_RECORDS
예시 프롬프트:
"Attio에서 Alan Mathis라는 사람을 검색해줘"
주요 매개변수 (모두 필수):
query– 검색 문자열 (최대 256자). 빈 문자열은 기본 결과를 반환합니다.objects– 검색할 객체 슬러그 배열 (예:["people"],["people", "companies"],["deals"])request_as– 컨텍스트: 전체 워크스페이스 검색 시{"type": "workspace"}사용, 또는 워크스페이스 멤버 지정
2. 고급 필터 쿼리
서버 측 필터링, 정렬 및 복잡한 조건을 사용하여 레코드를 쿼리합니다. 퍼지 검색보다 훨씬 강력합니다.
도구: ATTIO_QUERY_RECORDS
예시 프롬프트:
"Attio에서 2025년 1월 이후에 생성된 회사를 이름순으로 정렬해서 찾아줘"
주요 매개변수:
object(필수) – 객체 슬러그 또는 UUID (예: "people", "companies", "deals")filter–$eq,$contains,$gte,$and,$or등의 연산자를 포함한 Attio 필터 객체sorts–direction("asc"/"desc") 및attribute를 포함한 정렬 사양 배열limit– 반환할 최대 레코드 수 (최대 500)offset– 페이지네이션 오프셋
필터 예시:
{"name": {"first_name": {"$contains": "John"}}}
{"email_addresses": {"$contains": "@example.com"}}
{"created_at": {"$gte": "2025-01-01T00:00:00.000Z"}}
3. ID 또는 속성으로 레코드 찾기
고유 ID로 특정 레코드를 찾거나 고유 속성 값으로 검색합니다.
도구: ATTIO_FIND_RECORD
예시 프롬프트:
"Attio에서 도메인이 example.com인 회사를 찾아줘"
주요 매개변수:
object_id(필수) – 객체 유형 슬러그: "people", "companies", "deals", "users", "workspaces"record_id– UUID로 직접 조회 (선택 사항)attributes– 속성 필터 사전 (예:{"email_addresses": "[email protected]"})limit– 최대 레코드 수 (최대 1000)offset– 페이지네이션 오프셋
4. 메모 탐색 및 필터링
워크스페이스 전체의 메모를 나열하거나 특정 상위 객체 및 레코드별로 필터링합니다.
도구: ATTIO_LIST_NOTES
예시 프롬프트:
"Attio에서 Acme Corp 회사 레코드의 최근 메모 10개를 보여줘"
주요 매개변수:
parent_object– 객체 슬러그 (예: "people", "companies", "deals") –parent_record_id필요parent_record_id– 상위 레코드의 UUID –parent_object필요limit– 반환할 최대 메모 수 (1-50, 기본값 10)offset– 건너뛸 결과 수
5. 객체 스키마 및 속성 검색
객체와 해당 속성 정의를 나열하여 워크스페이스 구조를 파악합니다.
도구: ATTIO_GET_OBJECT, ATTIO_LIST_ATTRIBUTES
예시 프롬프트:
"Attio에서 companies 객체의 속성은 무엇인가요?"
Get Object 주요 매개변수:
object_id– 객체 슬러그 또는 UUID
List Attributes 주요 매개변수:
target– "objects" 또는 "lists"identifier– 객체 또는 리스트 ID/슬러그
6. 모든 레코드 나열
특정 객체 유형의 레코드를 생성 순서대로 간단한 페이지네이션으로 검색합니다.
도구: ATTIO_LIST_RECORDS
예시 프롬프트:
"Attio에서 처음 100개의 사람 레코드를 나열해줘"
주요 매개변수:
- 객체 유형 식별자
- 페이지네이션 매개변수
알려진 문제점
- 타임스탬프 형식이 중요합니다: 모든 타임스탬프 비교 (
created_at,updated_at, 사용자 정의 타임스탬프)는 반드시 ISO8601 문자열 형식(예:2025-01-01T00:00:00.000Z)을 사용해야 합니다. Unix 타임스탬프나 숫자 값은 "Invalid timestamp value" 오류를 발생시킵니다. - name 속성은 중첩되어야 합니다:
name속성에는 하위 속성(first_name,last_name,full_name)이 있으며 반드시name아래에 중첩되어야 합니다. 올바른 예:{"name": {"first_name": {"$contains": "John"}}}. 잘못된 예:{"first_name": {...}}– 이 경우 "unknown_filter_attribute_slug" 오류가 발생합니다. - 이메일 연산자는 제한적입니다:
email_addresses는$eq,$contains,$starts_with,$ends_with를 지원하지만$not_empty는 지원하지 않습니다. - 레코드 참조 속성은 경로 필터링이 필요합니다: 다른 레코드를 참조하는 속성(예: "team", "company")의 경우 중첩 구문 대신 경로 기반 필터링을 사용하세요. 예:
{"path": [["companies", "team"], ["people", "name"]], "constraints": {"first_name": {"$eq": "John"}}}. - "lists"는 객체 유형이 아닙니다:
object_id로 "lists"를 사용하지 마세요. 리스트 작업에는 리스트 전용 액션을 사용하세요. - 검색은 최종 일관성을 가집니다:
ATTIO_SEARCH_RECORDS는 최종적으로 일관된 결과를 반환합니다. 항상 최신 결과가 필요하면ATTIO_QUERY_RECORDS를 대신 사용하세요. - 속성 슬러그는 워크스페이스마다 다릅니다: 시스템 속성(예: "email_addresses", "name")은 일관되지만 사용자 정의 속성은 다릅니다. 워크스페이스에서 유효한 슬러그를 찾으려면
ATTIO_LIST_ATTRIBUTES를 사용하세요.
빠른 참조
| 액션 | 도구 슬러그 | 필수 매개변수 |
|---|---|---|
| 퍼지 검색 레코드 | ATTIO_SEARCH_RECORDS | query, objects, request_as |
| 필터로 쿼리 | ATTIO_QUERY_RECORDS | object |
| ID/속성으로 레코드 찾기 | ATTIO_FIND_RECORD | object_id |
| 메모 나열 | ATTIO_LIST_NOTES | 없음 (선택적 필터) |
| 객체 스키마 가져오기 | ATTIO_GET_OBJECT | object_id |
| 속성 나열 | ATTIO_LIST_ATTRIBUTES | target, identifier |
| 레코드 나열 | ATTIO_LIST_RECORDS | 객체 유형 |
Composio 제공