본문으로 건너뛰기

매크로

목록 조회

GET /macros — 자주 쓰는 응답 매크로 목록을 cursor pagination으로 조회합니다.

  • Scope: macros:read
  • 쿼리: limit(기본 50, 최대 100), cursor

limit[1, 100] 범위를 벗어나면 400 INVALID_QUERY입니다 (자동 보정 없음). cursor는 발급 후 24시간이 지나면 만료됩니다. 워크스페이스 매크로와 팀 매크로가 함께 반환되며, 삭제된 매크로는 제외됩니다. 정렬은 created_at 내림차순입니다.

curl "https://api.talk.zeroworks.ai/api/public/v1/macros?limit=50" \
-H "Authorization: Bearer ztpat_..."

응답

{
"success": true,
"data": [
{
"id": "m1a2b3c4-...",
"name": "환영 인사",
"content": "안녕하세요! 무엇을 도와드릴까요?",
"scope": "workspace",
"action_type": "template",
"sort_order": 0,
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-05-01T10:00:00Z"
}
],
"meta": { "has_more": true, "next_cursor": "eyJ..." }
}

scope는 매크로 적용 범위(workspace 또는 team)입니다. 팀 범위 매크로는 team_id에 해당 팀 UUID가 들어가고, 워크스페이스 범위 매크로에서는 team_id 키가 생략됩니다(null이 아님).

action_typetemplate(텍스트 응답형) 또는 workflow(워크플로 실행형)입니다. contenttemplate형에서 채워지고, workflow형에서는 키가 생략될 수 있습니다. 즉 team_id·content는 값이 없으면 null이 아니라 키 자체가 빠지므로 "key" in obj로 존재를 판별하세요. 단 template형이라도 첨부파일만 가진 매크로는 content가 빈 문자열("")로 반환될 수 있습니다(첨부파일은 공개 API로 노출되지 않습니다). 따라서 빈 content를 오류로 취급하지 마세요.

sort_order는 대시보드에서 상담원에게 표시되는 정렬 위치(클라이언트 측 정렬 힌트)이며, 이 API의 목록 정렬에는 사용되지 않습니다(목록은 항상 created_at 내림차순으로 반환됩니다).