Coda Automation logo

Coda Automation

CommunityPopular
davepoon
coda-automation

Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.

Overview

Publisherdavepoon
Repositorybuildwithclaude
Skill namecoda-automation
Stars
3.5K
Forks
509
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by davepoon on GitHub. Read the source before you install it.

Installation

Install the Coda Automation AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/davepoon/buildwithclaude.git /tmp/buildwithclaude
mkdir -p .claude/skills
cp -r /tmp/buildwithclaude/plugins/all-skills/skills/coda-automation .claude/skills/coda-automation
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Coda Automation in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Coda Automation on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Coda Automation is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Coda Automation via Rube MCP

Automate Coda document and data operations through Composio's Coda toolkit via Rube MCP.

Toolkit docs: composio.dev/toolkits/coda

Prerequisites

  • Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
  • Active Coda connection via RUBE_MANAGE_CONNECTIONS with toolkit coda
  • Always call RUBE_SEARCH_TOOLS first to get current tool schemas

Setup

Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.

  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

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 documents
  • isOwner: Filter to docs owned by the user
  • docId: Document ID for page operations
  • pageIdOrName: Page identifier or name
  • url: Browser URL for resolve operations

Pitfalls:

  • Document IDs are alphanumeric strings (e.g., 'AbCdEfGhIj')
  • CODA_RESOLVE_BROWSER_LINK is 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 table
  • tableIdOrName: Table identifier or name
  • query: Filter query for searching rows
  • rows: Array of row objects for upsert operations
  • keyColumns: Column IDs used for matching during upsert
  • sortBy: Column to sort results by
  • useColumnNames: Use column names instead of IDs in row data

Pitfalls:

  • Table names may contain spaces; URL-encode if needed
  • CODA_UPSERT_ROWS does insert if no match on keyColumns, update if match found
  • keyColumns must 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: true allows 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 ID
  • formulaIdOrName: 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 export
  • outputFormat: 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 status is '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 ID
  • access: Permission level ('readonly', 'write', 'comment')
  • principal: Object with email or user ID of the recipient
  • suppressEmail: Whether to skip the sharing notification email

Pitfalls:

  • Permission levels: 'readonly', 'write', 'comment'
  • Adding permission sends an email notification by default; use suppressEmail to 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 ID
  • slug: Custom URL slug for the published doc
  • categoryIds: 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 response

Table name -> Table ID:

1. Call CODA_LIST_TABLES with docId
2. Find table by name, extract id

Column name -> Column ID:

1. Call CODA_LIST_COLUMNS with docId and tableIdOrName
2. Find column by name, extract id

Pagination

  • Coda uses cursor-based pagination with pageToken
  • Check response for nextPageToken
  • Pass as pageToken in 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 keyColumns

Known 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

TaskTool SlugKey Params
Search docsCODA_SEARCH_DOCSquery
List docsCODA_LIST_AVAILABLE_DOCSisOwner
Resolve URLCODA_RESOLVE_BROWSER_LINKurl
List pagesCODA_LIST_PAGESdocId
Get pageCODA_GET_A_PAGEdocId, pageIdOrName
List tablesCODA_LIST_TABLESdocId
List columnsCODA_LIST_COLUMNSdocId, tableIdOrName
List rowsCODA_LIST_TABLE_ROWSdocId, tableIdOrName
Search rowsCODA_SEARCH_ROWdocId, tableIdOrName, query
Get rowCODA_GET_A_ROWdocId, tableIdOrName, rowIdOrName
Upsert rowsCODA_UPSERT_ROWSdocId, tableIdOrName, rows, keyColumns
Get columnCODA_GET_A_COLUMNdocId, tableIdOrName, columnIdOrName
Push buttonCODA_PUSH_A_BUTTONdocId, tableIdOrName, rowIdOrName, columnIdOrName
List formulasCODA_LIST_FORMULASdocId
Get formulaCODA_GET_A_FORMULAdocId, formulaIdOrName
Begin exportCODA_BEGIN_CONTENT_EXPORTdocId, outputFormat
Export statusCODA_CONTENT_EXPORT_STATUSdocId, requestId
Get sharingCODA_GET_SHARING_METADATAdocId
Add permissionCODA_ADD_PERMISSIONdocId, access, principal
Publish docCODA_PUBLISH_DOCdocId, slug
Unpublish docCODA_UNPUBLISH_DOCdocId
List packsCODA_LIST_PACKS(none)

Powered by Composio

Frequently asked questions

What does the Coda Automation AI skill do?

Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.

Why use Coda Automation on TypingMind?

Because you install it once and use it with any model. Coda Automation is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Coda Automation in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/davepoon/buildwithclaude/tree/main/plugins/all-skills/skills/coda-automation. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Coda Automation?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Coda Automation?

As many as you like. As long as a model supports skills, you can use Coda Automation with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Coda Automation AI skill free?

Yes. It is published on GitHub by davepoon under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇