Quick overview
This workflow runs nightly to fetch each team’s latest closed TeamRetro health checks, normalizes one row per health dimension, and upserts the scores into a Postgres table, sending a Slack alert only when errors occur.
How it works
- Runs every day at 02:00 (server time) and ensures the
team_health_scores table exists in Postgres.
- Retrieves all teams from TeamRetro and, for each team, fetches up to three most recent health checks.
- Skips teams without a closed health check and continues processing only checks whose status is
closed.
- Pulls all dimensions for each closed TeamRetro health check and flattens the ratings into warehouse-ready rows (including the health model and rating scale).
- Filters out unrated or failed dimension rows and upserts valid dimension scores into Postgres using
(health_check_id, dimension) as the conflict key.
- Aggregates outcomes into a single run summary and posts the error details to a Slack channel if any failures are detected.
Setup
- Create a TeamRetro credential using an account-scoped API key (
tra_) and select it for the TeamRetro nodes.
- Add a Postgres credential and confirm the workflow can create and write to the
team_health_scores table in your target database.
- Add a Slack credential and set the destination channel (for example
#data-alerts) for failure notifications.