All workflows
Google Sheets logoAnthropic logoGmail logo

Weekly employee feedback digest

Every Monday, the week's feedback form responses summarized for HR and emailed, then cleared from the sheet.

Every Monday at 10:003 apps4 steps

Apps it connects

Authenticate each one once and the workflow is ready to run.

What it does

The integration steps this workflow runs, in the order it first runs them.

  1. 1Google SheetsRead rows
  2. 2AnthropicGenerate model response
  3. 3GmailSend
  4. 4Google SheetsDelete row

How it works

Everything the template sets up, and what to fill in before the first run.

Every Monday at 10:00 this workflow reads the feedback your form has collected in a Google Sheet, has Claude write a digest of it, emails that digest to HR and the managers who need it, and only then clears the rows it covered out of the sheet so the next week starts empty.

Before the first run, fill in the settings at the top of the workflow: - spreadsheetUrl: the sheet your feedback form writes to. It ships blank and the run stops with a message until you set it. - sheetName: the tab to read. Defaults to 'Form Responses 1', which is what Google Forms creates. - feedbackColumns: the column heading, or headings, that hold the feedback itself. Name every question you want summarized. - contextColumns: optional non-identifying columns to include for grouping, such as Department or Tenure. Empty by default. - recipientEmail: where the digest goes. Separate several addresses with commas. It ships blank and the run stops until you set it. - teamContext: a few sentences about your organization. This is what turns a list of complaints into a digest a manager can act on. - maxItemsPerRun: how many submissions one digest covers, 200 by default. Anything above the cap stays in the sheet and goes out in the next digest. - deleteAfterSending: leave it on for the sheet-empties-itself behavior above. Turn it off if you have to retain responses; the digest still goes out.

Only the columns named in feedbackColumns and contextColumns are ever sent to the model. That is an allowlist rather than a redaction pass, so a Name or Email column sitting in the sheet is never read at all, and adding one to the form later cannot leak it either. The prompt tells Claude never to name an individual even when a name appears inside the feedback text, and the submissions are fenced off from the instructions so that something typed into the form cannot rewrite them.

The deletion is the part worth understanding, because it is the only irreversible step. Feedback is deleted only after the email has gone, so a failed model call or a failed send leaves every submission in the sheet for the next run. Only the rows the digest actually covered are deleted, and they are matched by content rather than by position: the sheet is read a second time just before deleting, so a row somebody moved in the meantime is followed to wherever it now sits, a row that was edited is left alone because the row that was summarized no longer exists, and a row that could be two different rows is left alone and named in the run's error rather than guessed at. Anything left behind that way simply turns up in next week's digest. Rows that are empty in your feedback columns but hold data somewhere else are never deleted either; they are counted in the email, which is how you find out that a column is missing from your settings before anything is lost. Deletes run from the bottom of the sheet upward, because deleting a row renumbers every row under it.

The counts in the email are computed from the sheet rather than written by Claude, and the prompt forbids it from giving totals of its own, so the digest cannot report a number the sheet disagrees with. Anything that reads like harassment, discrimination, retaliation, a safety problem or a person in real distress is pulled into a 'Needs attention now' section at the top of the digest instead of being averaged into a theme.

Connections needed: Google Sheets (reading and deleting), Anthropic (the digest) and Gmail (delivery). One Claude call per run, so a weekly digest costs a few cents. To change the day or the time, edit the trigger.

hrweeklydigestemployee feedbackgoogle sheetsemailclaude

Start from a workflow that already works.

Add "Weekly employee feedback digest" to your workspace, connect its apps, and make it yours. No credit card required.

Free plan available · No credit card required