Triage Coda customer feedback into Linear issues with a daily email

Every weekday at 9am, sort new feedback rows in your Coda tracker, file the real bugs and requests in Linear, and get a rollup email of what changed.

Agentic Task
CodaLinearGmailProductOperationsFeedback TriageDaily Digests
PromptCreate

Every weekday at 9am in my local timezone, triage new customer feedback sitting in my Coda feedback tracker, turn the actionable rows into Linear issues, and send me a daily rollup email. The trigger is cron. Coda does not have a first-class poll trigger for us, so cron plus a status column filter is the right pattern, and writing status back to Coda is what keeps this safe to run daily without duplicates.

Step 1. Use Coda List Table Rows to pull rows from my feedback table where the Status column is empty or equals "new". I will paste the doc ID and the table ID during setup, so treat both as required inputs on the workflow. Only fetch rows in that unprocessed state, and ask for the row's customer message, any severity or urgency field, the reporter's name or email if present, and the row ID so we can update it later.

Step 2. For each row, classify the feedback into one of four buckets: bug, feature request, question, or noise. Skip rows classified as noise (spam, thank-yous with no request, off-topic) and skip questions unless the customer is clearly reporting an issue. For anything classified as a bug or feature request, draft a crisp Linear title (short, imperative, no filler) and a description that quotes the customer verbatim in a blockquote, followed by a one line agent summary of what the customer is actually asking for. If the reporter's name or email is available, include it in the description.

Step 3. Call Linear List Teams once at the start of the run and cache the result for the whole run. Pick the right team per issue (default to the first team in the workspace unless I add routing rules later). Then call Linear Create Issue for each actionable row. Set priority based on severity language in the customer's message: words like "blocker", "cannot use", "broken for everyone", "urgent" map to Urgent (1); "important", "major", "frequent" map to High (2); typical requests map to Normal (3); "nice to have", "minor", "cosmetic" map to Low (4). Use "bug" or "feature" as an implicit hint in the title. Capture the resulting issue URL from Linear's response.

Step 4. Use Coda Update Row to write two things back to the source row: the Linear issue URL into a column called "Linear Issue" (or the closest matching URL column), and a Status of either "triaged" (for rows we filed) or "skipped" (for noise). This write-back is critical. Tomorrow's List Table Rows call filters on empty or "new" status, so any row we updated today will not be re-triaged.

Step 5. After all rows are processed, use Gmail Send a Message to email me one digest at my own address. The email should include: the total number of rows scanned, how many were filed as Linear issues, how many were skipped as noise, the new issues grouped by category (bugs, then feature requests) with each item showing the Linear title as a link to the issue URL, and a clearly labeled "needs your eyes" section listing any rows where the agent was not confident about classification or priority, with the raw customer quote and the Coda row link so I can decide. Send only one email per run, even if there is nothing new (in that case, send a short note saying the queue is empty).

Guardrails: never create more than one Linear issue per Coda row; if the Coda update fails for a row, do not create a Linear issue for it on retry (or if the Linear issue is already created, still attempt the Coda write-back with a note so we do not double-file next run); respect Coda and Linear rate limits with small waits between calls; and always send the digest email at the end, even if some rows errored, so I know the run happened.

Additional information

What does this prompt do?
  • Reads new customer feedback rows from your Coda tracker every weekday morning.
  • Sorts each row into bug, feature request, question, or noise, and skips the noise so Linear stays clean.
  • Files anything actionable as a Linear issue in the right team, with a title, a verbatim customer quote, a one line summary, and a priority that reflects how urgent the customer sounded.
  • Writes the Linear link and a new status back to the Coda row so the same feedback never gets triaged twice.
  • Sends you one email digest with counts, issues grouped by category, and a flagged list of anything the agent was unsure about.
What do I need to use this?
  • A Coda account with a feedback table (you will paste the doc ID and table ID at setup).
  • A Linear workspace where you can create issues.
  • A Gmail account for the daily digest email.
How can I customize it?
  • Change the schedule from weekday 9am to any time or cadence that suits your team.
  • Route different categories to different Linear teams, or use one team and rely on labels.
  • Tweak the classification rules, add tags, or send the digest to a different email address.

Frequently asked questions

How does it avoid creating duplicate Linear issues?
After each row is triaged, the agent writes the new Linear issue link and a status back to the Coda row. Tomorrow's run only picks up rows whose status is still empty or new, so nothing gets filed twice.
What if a row is ambiguous or the agent is not sure?
Instead of guessing, the agent lists uncertain rows in the daily email so you can decide before Linear fills up. You can then update those rows in Coda and they will be picked up on the next run.
How does it pick a Linear priority?
The agent reads severity language in the customer's message, words like blocker, urgent, cannot use, minor, nice to have, and maps it to Urgent, High, Normal, or Low. You can adjust the mapping when you generate the workflow.
Do I need to write any code?
No. Connect Coda, Linear, and Gmail, paste your Coda doc and table IDs, and the workflow runs on the schedule you pick.
Can I send the digest somewhere other than Gmail?
Yes. After the workflow is generated you can swap the digest step to Slack, Microsoft Teams, or another destination we support.

Stop hand sorting customer feedback every morning.

Connect Coda, Linear, and Gmail once, and Geni will triage your feedback queue for you every weekday at 9am.