Reads your tracker each week and posts everything still open to Slack, with a short note on what stands out.
Uses
Claude
Google Sheets
Slack
Weekly open items digest to Slack
Once a week, your tracker spreadsheet is read, every row not marked done is gathered up, and the lot is posted to a Slack channel as a single digest. Above the list sit two or three sentences from the AI on what stands out: what is blocked, what is overdue and who is carrying the most.
You get a message headed with the number of open items, each listed with its owner and status. It posts even when there is nothing open, because a digest that goes quiet looks the same as one that has broken, so an empty week gets an explicit nothing open message. If the summary cannot be written, the digest still goes out with the list intact and a note that the summary was unavailable. A row with a missing task or status is skipped and logged rather than quietly shortening the list.
Your tracker tab needs 'Task', 'Owner' and 'Status' columns, and you need a Slack channel for the digest.
spreadsheetUrl to blank.Set spreadsheetUrl to blank.slackChannelId to blank.Set slackChannelId to blank.trackerTab to Tasks.Set trackerTab to Tasks.maxRows to 300.Set maxRows to 300.doneValue to done.Set doneValue to done.spreadsheetUrl. Save it as sheet.Read the rows of spreadsheetUrl. Save it as sheet.openItems to an empty list.Set openItems to an empty list.row in sheet.rows:For each row in sheet.rows:rowErrorIf a step below fails, save the error as rowErrorrow.Status lowercase and save it as status.Make row.Status lowercase and save it as status.status is not doneValueIf status is not doneValuerow.Task (owner: row.Owner, status: row.Status) to the end of openItems and save it as openItems.Add - row.Task (owner: row.Owner, status: row.Status) to the end of openItems and save it as openItems.rowError as text.Show in the output: Skipped a tracker row: rowError as text.openItems is emptyIf openItems is emptyslackChannelId.Send a message to slackChannelId.*Weekly open items*
Nothing open - every tracked item is done.openItems with a new line and save it as itemList.Join openItems with a new line and save it as itemList.summaryErrorIf a step below fails, save the error as summaryErroritemList'. Save it as written.
Maximum response length: 400written.response_text and save it as summary.Trim written.response_text and save it as summary.slackChannelId.Send a message to slackChannelId.*Weekly open items* (the length of openItems as text)
summary
itemListslackChannelId.Send a message to slackChannelId.*Weekly open items* (the length of openItems as text)
_Summary unavailable this week._
itemList