coda-automation – skill Agent & Tự động hóa cho agent AI
Tự động hóa tác vụ Coda qua Rube MCP (Composio): quản lý tài liệu, trang, bảng, hàng, công thức, quyền truy cập và xuất bản. Luôn tìm công cụ trước để lấy schema hiện tại.
Cài skill coda-automation bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/coda-automation-6afe4.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /coda-automation – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/coda-automation-6afe4.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $coda-automation – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/coda-automation-6afe4.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /coda-automation – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/coda-automation-6afe4.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /coda-automation – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Coda Automation via Rube MCP
Automate Coda document and data operations through Composio's Coda toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Coda connection via
RUBE_MANAGE_CONNECTIONSwith toolkitcoda - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. Adding the endpoint does not authenticate Coda; use the host-supported authorized connection.
1. Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
2. Call RUBE_MANAGE_CONNECTIONS with toolkit coda
3. If connection is not ACTIVE, follow the returned auth link to complete Coda authentication
4. Confirm connection status shows ACTIVE before running any workflows
Core Workflows
Confirm the exact doc/table/row IDs and requested change before writes. Permission grants can notify recipients; publishing exposes content publicly. These require a specific user request including recipient/access or publication scope. A push-button call may trigger external actions, not just edit a cell: inspect its effect first. Row writes can be asynchronous; use the returned mutation/request status where supported, then read back. Reconcile timeouts before retrying an upsert, and do not overwrite formula/computed columns. Keep temporary export URLs and private doc content out of public reports. Bound polling and handle failed/expired jobs.
1. Search and Browse Documents
When to use: User wants to find, list, or inspect Coda documents
Tool sequence:
1. CODA_SEARCH_DOCS or CODA_LIST_AVAILABLE_DOCS - Find documents [Required]
2. CODA_RESOLVE_BROWSER_LINK - Resolve a Coda URL to doc/page/table IDs [Alternative]
3. CODA_LIST_PAGES - List pages within a document [Optional]
4. CODA_GET_A_PAGE - Get specific page details [Optional]
Key parameters:
query: Search term for finding documentsisOwner: Filter to docs owned by the userdocId: Document ID for page operationspageIdOrName: Page identifier or nameurl: Browser URL for resolve operations
Pitfalls:
- Document IDs are alphanumeric strings (e.g., 'AbCdEfGhIj')
CODA_RESOLVE_BROWSER_LINKis the best way to convert a Coda URL to API IDs- Page names may not be unique within a doc; prefer page IDs
- Search results include docs shared with the user, not just owned docs
2. Work with Tables and Data
When to use: User wants to read, write, or query table data
Tool sequence:
1. CODA_LIST_TABLES - List tables in a document [Prerequisite]
2. CODA_LIST_COLUMNS - Get column definitions for a table [Prerequisite]
3. CODA_LIST_TABLE_ROWS - List all rows with optional filters [Required]
4. CODA_SEARCH_ROW - Search for specific rows by query [Alternative]
5. CODA_GET_A_ROW - Get a specific row by ID [Optional]
6. CODA_UPSERT_ROWS - Insert or update rows in a table [Optional]
7. CODA_GET_A_COLUMN - Get details of a specific column [Optional]
Key parameters:
docId: Document ID containing the tabletableIdOrName: Table identifier or namequery: Filter query for searching rowsrows: Array of row objects for upsert operationskeyColumns: Column IDs used for matching during upsertsortBy: Column to sort results byuseColumnNames: Use column names instead of IDs in row data
Pitfalls:
- Table names may contain spaces; URL-encode if needed
CODA_UPSERT_ROWSdoes insert if no match onkeyColumns, update if match foundkeyColumnsmust reference columns that have unique values for reliable upserts- Column IDs are different from column names; list columns first to map names to IDs
useColumnNames: trueallows using human-readable names in row data- Row data values must match the column type (text, number, date, etc.)
3. Manage Formulas
When to use: User wants to list or evaluate formulas in a document
Tool sequence:
1. CODA_LIST_FORMULAS - List all named formulas in a doc [Required]
2. CODA_GET_A_FORMULA - Get a specific formula's current value [Optional]
Key parameters:
docId: Document IDformulaIdOrName: Formula identifier or name
Pitfalls:
- Formulas are named calculations defined in the document
- Formula values are computed server-side; results reflect the current state
- Formula names are case-sensitive
4. Export Document Content
When to use: User wants to export a document or page to HTML or Markdown
Tool sequence:
1. CODA_BEGIN_CONTENT_EXPORT - Start an export job [Required]
2. CODA_CONTENT_EXPORT_STATUS - Poll export status until complete [Required]
Key parameters:
docId: Document ID to exportoutputFormat: Export format ('html' or 'markdown')pageIdOrName: Specific page to export (optional, omit for full doc)requestId: Export request ID for status polling
Pitfalls:
- Export is asynchronous; poll status until
statusis 'complete' - Large documents may take significant time to export
- Export URL in the completed response is temporary; download promptly
- Polling too frequently may hit rate limits; use 2-5 second intervals
5. Manage Permissions and Sharing
When to use: User wants to view or manage document access
Tool sequence:
1. CODA_GET_SHARING_METADATA - View current sharing settings [Required]
2. CODA_GET_ACL_SETTINGS - Get access control list settings [Optional]
3. CODA_ADD_PERMISSION - Grant access to a user or email [Optional]
Key parameters:
docId: Document IDaccess: Permission level ('readonly', 'write', 'comment')principal: Object with email or user ID of the recipientsuppressEmail: Whether to skip the sharing notification email
Pitfalls:
- Permission levels: 'readonly', 'write', 'comment'
- Adding permission sends an email notification by default; use
suppressEmailto prevent - Cannot remove permissions via API in all cases; check ACL settings
6. Publish and Customize Documents
When to use: User wants to publish a document or manage custom domains
Tool sequence:
1. CODA_PUBLISH_DOC - Publish a document publicly [Required]
2. CODA_UNPUBLISH_DOC - Unpublish a document [Optional]
3. CODA_ADD_CUSTOM_DOMAIN - Add a custom domain for published doc [Optional]
4. CODA_GET_DOC_CATEGORIES - Get doc categories for discovery [Optional]
Key parameters:
docId: Document IDslug: Custom URL slug for the published doccategoryIds: Category IDs for discoverability
Pitfalls:
- Publishing makes the document accessible to anyone with the link
- Custom domains require DNS configuration
- Unpublishing removes public access but retains shared access
Common Patterns
ID Resolution
Doc URL -> Doc ID:
1. Call CODA_RESOLVE_BROWSER_LINK with the Coda URL
2. Extract docId from the responseTable name -> Table ID:
1. Call CODA_LIST_TABLES with docId
2. Find table by name, extract idColumn name -> Column ID:
1. Call CODA_LIST_COLUMNS with docId and tableIdOrName
2. Find column by name, extract idPagination
- Coda uses cursor-based pagination with
pageToken - Check response for
nextPageToken - Pass as
pageTokenin next request until absent - Default page sizes vary by endpoint
Row Upsert Pattern
1. Call CODA_LIST_COLUMNS to get column IDs
2. Build row objects with column ID keys and values
3. Set keyColumns to unique identifier column(s)
4. Call CODA_UPSERT_ROWS with rows and keyColumnsKnown Pitfalls
ID Formats:
- Document IDs: alphanumeric strings
- Table/column/row IDs: prefixed strings (e.g., 'grid-abc', 'c-xyz')
- Use RESOLVE_BROWSER_LINK to convert URLs to IDs
Data Types:
- Row values must match column types
- Date columns expect ISO 8601 format
- Select/multi-select columns expect exact option values
- People columns expect email addresses
Rate Limits:
- Coda API has per-token rate limits
- Implement backoff on 429 responses
- Bulk row operations via UPSERT_ROWS are more efficient than individual updates
Quick Reference
| Task | Tool Slug | Key Params |
|------|-----------|------------|
| Search docs | CODA_SEARCH_DOCS | query |
| List docs | CODA_LIST_AVAILABLE_DOCS | isOwner |
| Resolve URL | CODA_RESOLVE_BROWSER_LINK | url |
| List pages | CODA_LIST_PAGES | docId |
| Get page | CODA_GET_A_PAGE | docId, pageIdOrName |
| List tables | CODA_LIST_TABLES | docId |
| List columns | CODA_LIST_COLUMNS | docId, tableIdOrName |
| List rows | CODA_LIST_TABLE_ROWS | docId, tableIdOrName |
| Search rows | CODA_SEARCH_ROW | docId, tableIdOrName, query |
| Get row | CODA_GET_A_ROW | docId, tableIdOrName, rowIdOrName |
| Upsert rows | CODA_UPSERT_ROWS | docId, tableIdOrName, rows, keyColumns |
| Get column | CODA_GET_A_COLUMN | docId, tableIdOrName, columnIdOrName |
| Push button | CODA_PUSH_A_BUTTON | docId, tableIdOrName, rowIdOrName, columnIdOrName |
| List formulas | CODA
… (nội dung đầy đủ có trong gói tải về)
Skill liên quan
- codex-fable5 – Áp dụng kỷ luật lấy cảm hứng từ Fable cho công việc với Codex: kiểm tra trước, theo dõi…
- codex-subagent – Khởi chạy Codex CLI như một subagent độc lập cho các tác vụ viết code, review hoặc kiểm…
- commit – Chuẩn bị hoặc tạo commit theo quy ước message kiểu Sentry khi repository yêu cầu; kiểm…
- pretext – Xây dựng bản demo trình duyệt sáng tạo với bố cục văn bản không dùng DOM.
- computer-use-agents – Xây dựng agent AI tương tác với máy tính như con người — xem màn hình, di chuyển con…
- conductor-implement – Thực thi các tác vụ từ kế hoạch triển khai của một track theo quy trình TDD.
- review-agent-setup – Cấu hình cổng kiểm soát có con người tham gia (human-in-the-loop) cho các hành động…
- conductor-setup – Cấu hình dự án Rails để làm việc với Conductor (các coding agent chạy song song)