This is a tough one. I think this gap goes back a half-decade, maybe more. Here’s an overview my Coda-informed AI gave me. I don’t have a lot of time, so I’ll just share and dash. Maybe it will help.
Coda User ID Mapping Research
I have completed the research regarding the “Allow User ID” discussion in the Coda community and how it relates to system logs and the Coda MCP.
Key Findings
1. The Core Limitation
The native Coda formula User() returns a “Person” object that is intentionally limited for privacy and security. It only exposes:
.name()
.email()
.photo()
.state()
There is no native .id() property, which makes it difficult for users to map doc activities to external systems or Pack logs.
2. User ID Formats
The “User ID” in Coda can appear in two main formats:
-
Numeric IDs (e.g., 316574): These are the primary identifiers used in the Coda Admin API and Pack logs.
-
String Prefixed IDs (e.g., user-...): Often used in internal resource references or older API versions.
The community request (topic 59677) is specifically for Coda to expose the Numeric ID in formulas to allow matching with system/access logs.
3. Coda MCP Solution
While Coda formulas cannot see these IDs, the Coda MCP can. By using the mcp_Coda_whoami tool, an AI agent or developer can retrieve:
- The numeric
userId
- The user’s metadata (name, email)
This allows for automated mapping that is otherwise impossible within the document.
Recommendation
For your mapping needs, you don’t have to wait for Coda to implement the feature. You can use an AI agent with the Coda MCP to:
-
Generate a Mapping Table: Automatically populate a doc table with User Name and their corresponding Numeric ID.
-
Debug Logs: Copy/paste log excerpts and ask the agent to identify the users based on the IDs found.
Implementation Guide: Mapping IDs with Coda MCP
The following steps outline how to build a User ID mapping system using the Coda MCP.
Step 1: Retrieve the User ID
The mcp_Coda_whoami tool is the most direct way to get the numeric userId.
Example Tool Call:
{
"toolName": "whoami"
}
Response:
{
"userId": 316574,
"name": "Bill French",
"email": "bill.french@gmail.com"
}
Step 2: Create a Mapping Table
If your document doesn’t already have one, create a table to store these correlations.
Example Table Structure:
- Column 1:
User Name (Text)
- Column 2:
Email (Text)
- Column 3:
Coda Numeric ID (Number)
Step 3: Populate the Table
Once you have the user’s information, use mcp_Coda_table_add_rows to write it to the doc.
Example Tool Call:
{
"docId": "YOUR_DOC_ID",
"tableId": "grid-mappingTable",
"columns": ["c-UserName", "c-Email", "c-NumericID"],
"rows": [
["Bill French", "bill.french@gmail.com", 316574]
]
}
Step 4: Automate with AI
You can ask an AI agent to:
“Find the numeric Coda IDs for all users in this doc and populate the ‘User Mapping’ table.”
The agent will iterate through the doc’s users, call whoami (if they are the active user) or search for user profiles, and sync the data.
Research Recording
Below is the recording of the research conducted within the Coda Community and API documentation.
Verified using Coda API V1 and community research.